3.2. NUMERI PRIMI DI MERSENNE NUMERI PRIMI DI FERMAT ARITMETICA MODULARE PICCOLO TEOREMA DI FERMAT

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "3.2. NUMERI PRIMI DI MERSENNE... 28 3.3. NUMERI PRIMI DI FERMAT... 28 3.4. ARITMETICA MODULARE... 28 3.5. PICCOLO TEOREMA DI FERMAT... 28 3.6."

Transcript

1 CRITTOGRAFIA Sommario 1. LA STORIA Il RE DI MILETO EGIZIANI E BABILONESI SERSE SPARTA KAMASUTRA CESARE CIFRARIO AFFINE ANALISI DELLE FREQUENZE ALGORITMI POLIALFABETICI DISCHI DI ALBERTI QUADRATO DI DE VIGENERE BABBAGE CIFRARIO ADFGVX ENIGMA NAVAJO CIFRARIO DI HILL CIFRARIO PLAYFAIR OGGI DES DES IDEA AES L ALGORITMO DI DIFFIE-HELLMAN RSA PGP AUTENTICAZIONE DI MESSAGGI FUNZIONI HASH MD SHA FIRMA DIGITALE CERTIFICATO DIGITALE PEC TLS MATEMATICA UTILE NUMERI PRIMI

2 3.2. NUMERI PRIMI DI MERSENNE NUMERI PRIMI DI FERMAT ARITMETICA MODULARE PICCOLO TEOREMA DI FERMAT IDENTITA DI BEZOUT FUNZIONE φ DI EULERO APPENDICE 1: ALGORITMO IDEA APPENDICE 2: ALGORITMO MD APPENDICE 3: ALGORITMO MD5 IN JAVA APPENDICE 4: File checksum with SHA

3 1. LA STORIA Le regole di cifratura devono essere note sia al mittente che al destinatario, in modo che quest ultimo possa effettuare la decrittazione del messaggio ricevuto. Quando la chiave di cifratura coincide con quella di decifratura si ha una cifratura a chiave simmetrica. Ovviamente bisogna che preventivamente ci si sia scambiata la chiave comune. Quando la chiave di cifratura è diversa da quella usata per la decifratura si ha una cifratura a chiave asimmetrica. Le due chiavi sono la chiave pubblica quella usata per la cifratura e la chiave privata quella usata per decifrare, che è segreta e nota solo al destinatario del messaggio. Il mittente non deve preventivamente comunicare col destinatario per scambiarsi le chiavi. Utilizza la chiave pubblica del destinatario per crittare il messaggio da trasmettere. Solo chi è in possesso della chiave privata lo può decrittare. In questo modo la sicurezza del crittosistema dipende solo dalla segretezza della chiave, non dalla segretezza dell algoritmo usato Il RE DI MILETO Il re di Mileto fece rasare la testa a un messaggero e poi ricrescere i capelli EGIZIANI E BABILONESI Un primo esempio di occultamento di messaggi si trova in geroglifici di anni fa. In una tavoletta babilonese sono stati modificati alcuni simboli per rendere incomprensibile il messaggio SERSE Serse raschiò la cera da una tavoletta; scrisse sul legno; rimise la cera SPARTA Spartani usavano lo scitale, bastone su cui arrotolare strisce di carta (metodo a trasposizione) KAMASUTRA Nel kamasutra, arte della scrittura segreta : dividere l alfabeto a metà e accoppiare le lettere a due a due in modo casuale. Sostituire una lettera all altra (cifrario a sostituzione) CESARE Codice di Cesare (sostituzione) (Hal9000). Per un alfabeto di n lettere, solo n possibilità. Aritmetica modulare (Euclide). C(x) = (x+k) mod n dove x è la posizione della lettera da cifrare; c(x) la posizione cifrata; n lunghezza dell alfabeto; k la chiave. C -1 (x) = (x-k) mod n Esempio: la lettera D corrisponde a x=3 C -1 (x)=(3-3) mod 26 che corrisponde alla A 1.7. CIFRARIO AFFINE Cifrario affine è una generalizzazione del cifrario di Cesare. C (a,b) (x) = (ax+b) mod n Essendo a e b due numeri interi minori del numero n di lettere dell alfabeto. Il massimo comune divisore fra a e n deve essere 1, altrimenti si ammetterebbe la possibilità di cifrare in modo differente uno stesso carattere. La chiave del cifrario viene determinata dalla coppia (a,b). I cifrari affini generati con la forma spiegata offrono maggiore sicurezza di un codice Cesare convenzionale. Perché? Come si è già visto, la chiave di un cifrario affine sono le coppie di numeri 3

4 (a, b). Nel caso di un messaggio scritto nell alfabeto di 26 lettere, e criptato grazie ad un cifrario affine, a e b possono adottare qualsiasi valore compreso fra 0 e 25. Il numero di chiavi possibili è perciò 26x26=656, n volte maggiore di quello del codice Cesare. Comunque facile da decrittare con la forza bruta. Esempio: Alfabeto di 6 lettere: A (0); B (1); C (2); D (3); E (4); F (5) Criptiamo il testo con un cifrario affine C(x) = (2x + 1) mod 6. La A viene cifrata secondo C(0) =2x0+1 = 1 mod 6, che corrisponde a B; La B viene cifrata secondo C(1) = 2x1+1 = 3 mod 6, che corrisponde a D; La C viene cifrata secondo C(2) =2x2+1 = 5 mod 6, che corrisponde a F; La D viene cifrata secondo C(3) = 2x3+1 = 7 =1 mod 6, che corrisponde a B; La E viene cifrata secondo C(4) = 2x4+7 = 9 = 3 mod 6, che corrisponde a D; La F viene cifrata secondo C(5) = 2x5+1 = 11 = 5 mod 6, che corrisponde a F. In questo modo il cifrario affine proposto cripta allo stesso modo i messaggi «ABC» e «DEF». È quindi impossibile sapere qual è il messaggio originale. Cos è successo? Se si tratta con un cifrario con espressione C (a,b) (x) = (ax+b) mod n, si potrà decifrare il messaggio in modo univoco se e solo se MCD(a,n) =1. Nell esempio proposto, MCD(2,6) = 2 e quindi si elimina 1 restrizione. L operazione matematica di decifrazione equivale a trovare l incognita x dato un valore numerico y in modulo n. C (a,b) (x) = (ax+b) = y mod n (ax+b) = y mod n ax = (y b) mod n Stiamo quindi cercando un valore a -1 (inverso di a) che verifichi a -1 =1, in modo che a -1 ax = a -1 (y - b) mod n x = a -1 (y - b) mod n Di conseguenza, per riuscire a decifrare, bisogna calcolare gli inversi di un numero a in modulo n e, per non fare sforzi inutili, sapere in anticipo se realmente esistono tali inversi. Un cifrario affine avrà l inverso se e solo se MCD(a,n) = 1. Nel caso dei cifrario affine dell esempio, C(x) = (2x+1) mod 6, si vuole sapere se il numero a, nel nostro caso 2, ha inverso. Cioè, se c è qualche intero n minore di 6 tale che 2n=1 mod 6. Per questo controlliamo tutti i valori dei modulo (0,1,2,3,4,5): 2x0 = 0, 2x1 = 2, 2x2 = 4, 2x3 = 6 = 0, 2x4 = 8 = 2, 2x5 = l0 = 4. Tale valore non esiste, per cui si conclude che 2 non ha inverso. In realtà già si sapeva dato che MCD(2,6) 1. Esempio2: Supponiamo ora che si sia intercettato i1 messaggio «YSFMG», che si sa essere stato criptato con un cifrario affine di forma C(x) = 2x * 3 e sia stato scritto non con l alfabeto inglese di 26 caratteri, ma, ad esempio, con quello spagnolo che di caratteri ne ha 27 (possiede infatti anche la lettera Ñ, collocata nell ordine alfabetico subito dopo 1 N normale). Quale sarà il messaggio originale? Innanzitutto, calcoliamo il MCD (2, 27), che è uguale a 1. Il messaggio originale quindi può essere decifrato. Per farlo si deve trovare la funzione inversa di C(x) =2x + 3 in modulo 27. y=2x+3 2x=y-3. Per poter isolare la x bisogna moltiplicare ambo i lati dell espressione per l inverso di 2. L inverso di 2 in modulo 27 è un intero n tale che 2n=1 mod 27, cioè 14, come si vede: 14 x 2 = 28 = 1 Di conseguenza, x = 14(y-3). Ora possiamo decifrare il messaggio. La lettera Y occupa la posizione 25 e decifrata sarà 14(25-3) = 308 = 11 mod 27. La lettera che occupa la posizione 11 nell alfabeto è la L. Per la lettera S, 14(19-3) = 224 = 8 mod 27 che corrisponde alla lettera I. Per la lettera F 14(5-3) = 28 = 1 mod 27, che corrisponde alla B. 4

5 Per la lettera M 14(12-3) = 126 = 18 mod 27, che corrisponde alla R. Per 1 lettera G 14(6-3) = 42 = 15 mod 27, che corrisponde alla O. Il messaggio decifrato è la parola «LIBRO». Sull idea di Cesare e sulla sua generalizzazione in forma di cifrario affine, si sono basati per molti secoli molti sistemi di sicurezza. Fra le qualità di un buon algoritmo di criptazione, una delle più importanti è che a partire da questo si possano generare una grande quantità di chiavi. Sia il cifrario di Cesare convenzionale che il codice affine (questo in minor misura) sono vulnerabili alla crittoanalisi a causa del numero relativamente ridotto di chiavi che ammettono. Se eliminiamo qualsiasi restrizione relativa all ordine dei caratteri dell alfabeto cifrato, però, ii numero potenziale di chiavi aumenta. Si può notare che in totale ce ne sarebbero 261 = , cioè, 403 quadrilioni di chiavi. Una spia in grado di controllare una chiave possibile al secondo, impiegherebbe più di un miliardo di volte la vita attesa dell universo per finire tutte le possibilità. Una chiave possibile di un algoritmo generale di sostituzione così definito potrebbe essere la seguente: (1) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (2) Q W E R T Y U I O P A S D F G H J K L Z X C V B N M (1) Alfabeto originario. (2) Alfabeto cifrato L alfabeto cifrato non è in ordine. In realtà non è nemmeno casuale; riuscite a capire da dove deriva? Per cifrare il messaggio «VENIVIDIVICI» con la chiave QWERTY, si cerca per ogni lettera dell alfabeto convenzionale quella che le corrisponde nell alfabeto cifrato. In questo modo si otterrebbe il seguente messaggio cifrato: «CTFO CORO COEO». Esiste un modo molto semplice per generare un numero quasi infinito di chiavi facili da ricordare per questo metodo di cifratura. Basta ricordarsi una parola chiave qualsiasi (può essere anche una frase) e situarla all inizio dell alfabeto cifrato, lasciando che il resto dello stesso segua l ordine alfabetico convenzionale a partire dall ultima lettera della parola chiave, facendo attenzione a non ripetere nessun carattere. Un esempio potrebbe essere «CIFRA GENNAIO». Innanzitutto bisogna eliminare lo spazio e i caratteri ripetuti, ottenendo così la parola chiave «CIFRAGENO». L alfabeto cifrato risultante è il seguente: (1) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (2) C I F R A G E N O P Q S T U V W X Y Z B D H J K L M Il messaggio «VENIVIDIVICI» sarebbe cifrato come «HAUOHOROHOFO». L affidabilità e semplicità dell algoritmo di sostituzione per parole chiave fece di questo sistema il favorito per secoli. L opinione generale era che i crittografi avessero definitivamente vinto la partita contro i crittoanalisi ANALISI DELLE FREQUENZE Il Corano è composto da 114 capitoli, ognuno dei quali corrisponde ad una rivelazione (sura) avuta da Maometto. La natura frammentaria degli scritti originali stimolò la nascita di un particolare ramo della teologia islamica dedicato a1la datazione esatta del1e diverse rivelazioni, in cui gli studiosi de1 Corano, insieme a varie altre tecniche, si servirono anche dello studio della frequenza con cui appaiono determinate parole considerate come di nuova introduzione. Se una sura contiene un numero sufficiente di tali parole, si può supporre che sia relativamente tarda. Questa indagine fu all origine dei primi strumenti specifici di crittoanalisi inventati dall uomo: l analisi delle frequenze. Il primo a lasciare una descrizione scritta di questa rivoluzionaria tecnica fu uno scienziato nato a Baghdad nell anno 801, di nome al- Kindi, il più importante crittoanalista della storia. Nel metodo di cifratura per sostituzione, una lettera del messaggio originale «mantiene la sua posizione però cambia il suo ruolo», ed è precisamente questa costanza nel «mantenere la posizione a renderlo risolvibile tramite la crittoanalisi per frequenza. Il genio di al-kindi sovvertì l equilibrio di potere fra crittografi e crittoanalisi, mettendo questi ultimi in una posizione di vantaggio, almeno per il momento. Esempio: Con una buona approssimazione, le lettere che appaiono nei testi in italiano in ordine di frequenza sono: E, A, I, O, N, R, L, T, S, C, D, U, P, M, V, G, B, H, F, Q, Z, X, J, K, Y, W. Possiamo osservare le percentuali d apparizione di ogni lettera nella seguente tabella di frequenze, ricavata dall analisi di alcuni libri italiani pubblicati nel XX secolo. A 10,96% E 11,35% I 10,78% M 2,63% Q 0,57% U 3,15% Y 0,01% B 1,32% F 1,10% J 0,02% N 6,96% R 6,44% V 1,90% Z 0,57% 5

6 C 5,05% G 1,82% K 0,02% O 9,81% S 5,35% W 0,00% D 3,79% H 1,30% L 6,39% P 2,89% T 5,76% X 0,08% Se un messaggio è stato cifrato con un algoritmo di sostituzione come quelli esaminati precedentemente, può essere decifrato in funzione della frequenza relativa dei caratteri del messaggio originale. Basta contare le volte in cui ognuno dei caratteri cifrati appare e compararle con la tabella di frequenza della lingua in cui è stato scritto. Così, se il carattere che appare più spesso nel testo cifrato è, ad esempio, la J, la lettera del messaggio originale alla quale con più probabilità corrisponde sarà, nel caso dell italiano, la E. Se il secondo carattere più frequente è la Z, con ragionamento analogo si conclude che la corrispondenza più probabile è la A. Ripetendo i1 processo per tutti i caratteri del messaggio cifrato si è in grado di portare a termine la crittoanalisi. Testi brevi presentano frequenze relative di lettere molto diverse da quelle che caratterizzano la lingua nella sua globalità. Infatti, per testi con un estensione minore di 100 caratteri, questa semplice analisi raramente è utile. Ciò nonostante, l analisi delle frequenze, non deve rimanere legata solo allo studio delle lettere prese singolarmente. Anche accettando che è improbabile che il carattere più frequente in un breve testo cifrato sia la E, possiamo affermare con maggiore certezza che le cinque lettere più frequenti siano, senza ancora conoscere con sicurezza le corrispondenze, la E, la A, la I, la O e la N. Di queste cinque lettere, l unica che si ripete di seguito in italiano è la N. Quindi, se troviamo un carattere fra i cinque più frequenti che, in più, appare due volte di seguito, possiamo momentaneamente concludere che si tratti di una N nell originale (oppure di una tra le due consonanti che la seguono come frequenza, ovvero R ed L). Allo stesso modo, è pure probabile che, per quanto sia breve il testo, le vocali tendano ad apparire davanti o dietro ad un maggior numero di altri caratteri rispetto alle consonanti, che invece tendono a raggrupparsi con altre vocali o con un numero ristretto di caratteri. In questo modo, si può riuscire a identificare la A, la E e la O. Man mano che vengono decifrati alcuni caratteri, appariranno parole dove mancano solo una o due lettere per la decifrazione completa, che ci permetteranno di formulare nuove ipotesi; la rapidità della decifrazione, di conseguenza, aumenta più che proporzionalmente man mano che si decifrano i caratteri. L applicazione di queste ed altre particolarità nella frequenza d apparizione di lettere o gruppi di lettere della lingua originale può perciò portare alla riuscita nella decifrazione, anche partendo da un testo relativamente corto. La decifrazione attraverso l analisi delle frequenze è un metodo efficace e anche spettacolare, tanto che ha attratto l attenzione di numerosi scrittori. Il racconto più celebre sulla crittoanalisi di un messaggio è lo scarabeo d oro di Edgar A. Poe, ma anche Verne e Conan Doyle si sono cimentati con questo metodo. In Inglese la lettera più frequente è la e. Il protagonista del racconto esamina le frequenze e scopre che il simbolo più presente è 8. Poi suppone che i 3 caratteri ;48 corrispondano alla parola the. La sequenza ;(88 si traduce con t(ee e l unica parola possibile in inglese è tree così scopre che ( corrisponde a r. Il messaggio nello scarabeo d oro Gli omini danzanti di Poe 1.9. ALGORITMI POLIALFABETICI I cifrari polialfabetici si differenziano dai monoalfabetici in quanto un dato carattere del testo in chiaro non viene cifrato sempre con lo stesso carattere, ma con caratteri diversi in base ad una qualche regola, in genere legata ad una parola segreta da concordare. Tipicamente la sicurezza del codice tende ad aumentare significativamente. Diventa infatti più complesso individuare come sono state crittate le lettere del messaggio in base alla loro frequenza caratteristica nella lingua di origine. Uno dei primi esempi documentati di cifrario polialfabetico è il famoso disco cifrante di Leon Battista Alberti o la tavola di Vigenère. Pur essendo mediamente più sicuri dei monoalfabetici anche questi cifrari sono facilmente attaccabili se si dispone di un testo cifrato sufficientemente lungo. 6

7 DISCHI DI ALBERTI In realtà la soluzione al problema posto dall analisi delle frequenze era già stata data da più di un secolo. L artefice del nuovo cifrario fu il versatile genio rinascimentale Leon Battista Alberti. Architetto, matematico e teorico della prospettiva, Alberti si era anche cimentato, attorno al 1460, all elaborazione di un sistema di criptazione consistente nell aggiungere all alfabeto cifrato convenzionale un secondo, così come si vede nella tabella seguente. (1) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (2) D E F G H I J K L M N O P Q R S T U V W X Y Z A B C (3) M N B V C X Z T K J H G F D S A P O I U Y L R E W Q (1) Alfabeto originario. (2) Alfabeto cifrato 1. (3) Alfabeto cifrato 2. Per criptare un messaggio qualsiasi, Alberti proponeva di alternare i due alfabeti cifrati. Per esempio, nel caso della parola «CIFRA», il codice della prima lettera si cercherebbe nel primo alfabeto (F), quello della seconda nel secondo (K), e così via. Nel nostro esempio, «CIFRA» risulterebbe cifrato come «FKIOD». Il vantaggio di questo algoritmo di criptazione polialfabetico, rispetto ai precedenti, è immediatamente evidente: uno stesso carattere del testo originario, A, è cifrato in due modi distinti, D e M. Per creare la maggior confusione possibile nel crittoanalista che si fosse trovato ad affrontare il testo criptato, uno stesso carattere cifrato poteva quindi in realtà rappresentare due caratteri diversi del testo originario. L analisi delle frequenze perdeva così buona parte della sua utilità. Un modo pratico di realizzare un cifrario polialfabetico è l uso di dispositivi conosciuti come i «dischi di Alberti». Sono cifratori portatili costituiti da una ruota fissa su cui è inciso l alfabeto convenzionale e un disco concentrico e mobile su cui è inciso un altro alfabeto. Chi invia il messaggio fa girare l anello mobile abbinando l alfabeto originario con tanti alfabeti cifrati quanti sono i giri possibili dell anello. Per decrittare il messaggio, il ricevente deve semplicemente effettuare gli stessi giri dell emittente. La sicurezza di questo cifrario dipende dal mantenere segrete le chiavi, ovvero l ordine dei movimenti dell anello mobile QUADRATO DI DE VIGENERE Lo sviluppo dell idea di Alberti non venne attribuito all italiano, che sulla questione non lasciò mai un trattato scritto, ma ad altri due teorici della stessa epoca anche se vissuti qualche anno dopo, il tedesco Johannes Trithemius ed il francese Blaise de Vigenère. Il primo e più celebre sistema di cifrario polialfabetico è quello conosciuto come «quadrato di De Vigenère». Questo modello di cifrario era composto da un alfabeto originario di n caratteri sotto il quale si distribuivano n alfabeti cifrati, ognuno di questi spostato di una lettera a sinistra. In altre parole, una matrice quadrata di 26 righe e 26 colonne. 7

8 Il primo alfabeto cifrato servirebbe per applicare un cifrario di Cesare con parametri a=1 e b=2, il secondo al cifrario di Cesare con b=3, ecc. La chiave del quadrato consiste nel sapere, per ogni lettera del messaggio, di quante righe ci spostiamo verso il basso. In questo modo la frequenza delle lettere del messaggio originale sparisce. L interesse di qualsiasi crittografo risiede nel generare chiavi facili da ricordare, distribuire e aggiornare. Nel caso del quadrato di De Vigenère, la parola chiave scelta viene allora usata con il seguente procedimento: si scrive la parola sotto al testo in chiaro, ripetendola tante volte quante è necessario, si prende l intersezione fra la riga e la colonna corrispondente come su di una matrice cartesiana e si ottiene in questo modo il messaggio cifrato. La riga corrispondente in questo caso sarebbe quella che inizia per la lettera del carattere della relativa parola chiave. Per esempio, si vuole cifrare ii messaggio «DOMANI RAPPPORTO», attraverso la parola chiave «NOVEMBRE»: Messaggio D O M A N I R A P P O R T O Chiave N O V E M B R E N O V E M B Cifrato Q C H E Z J I E C D J V F P L importanza di questi metodi polialfabetici è la resistenza all analisi delle frequenze. Se uno stesso carattere può essere cifrato in più di una forma, come si può effettuare un analisi efficace? La domanda sarebbe rimasta senza risposta per più di 300 anni BABBAGE La lunghezza della parola chiave scelta determinava la quantità di alfabeti cifrati impiegati. Così, se la parola chiave era «MURO», ogni carattere del messaggio originale poteva essere cifrato in 4 modi diversi. Altrettanto succedeva con le parole. Questa caratteristica sarebbe stata il punto di partenza usato da Charles Babbage per aggirare l ostacolo della cifratura polialfabetica. Esempio: Messaggio L A V E R D E E L A R O S S A Chiave M U R O M U R O M U R O M U R Cifrato Z G E Q F J N Q Z G A A G Y J Si nota che la parola «LA» del messaggio originale è cifrata con gli stessi caratteri in entrambi i casi. Questo si deve al fatto che la distanza fra entrambe le particelle nel messaggio originale (otto) è un multiplo del numero di caratteri della chiave usata (quattro). Con quest informazione, e dato un testo originale abbastanza lungo, è possibile indovinare la lunghezza della parola chiave. Il procedimento è il seguente: si identificano tutti i caratteri ripetuti e gli spazi che rimangono fra loro e si cercano divisori interi dei caratteri e degli spazi. I divisori comuni sono i numeri candidati a rappresentare la lunghezza della chiave. Supponiamo che il candidato più probabile, per essere ii divisore comune che appare più volte sia il 5. Rimane ora da indovinare a quali caratteri corrisponde ognuna delle cinque lettere della chiave. Se ricordiamo il processo di codifica, ogni lettera della chiave del quadrato di De Vigenère determina una cifratura monoalfabetica del carattere corrispondente del messaggio originale. Nel caso della nostra chiave ipotetica di cinque caratteri (CL, C2, C3, C4, C5), il sesto carattere (C6) si cifra con lo stesso alfabeto con cui si è criptato il primo (C1), il settimo (C7) con quello usato per cifrare il secondo (C2), eccetera. Quindi, in realtà il crittoanalista si trova davanti cinque cifrature monoalfabetiche, tutte suscettibili di crittoanalisi. II processo si completa compilando tabelle di frequenze per tutti i caratteri del testo cifrati con lo stesso carattere della parola chiave (C1, C6, C11... e C2, C7, fino a completare i cinque gruppi di caratteri per tutta la lunghezza del 8

9 messaggio), e confrontando queste tabelle con quelle della lingua del messaggio. Se la coincidenza non è chiara, si scarta la lunghezza della chiave scelta e si prende la seconda più probabile. L iterazione di questo processo permette di identificare almeno una parola chiave probabile e, a questo punto, rimane solo da decifrare il messaggio. Il magistrale exploit di Babbage, portato a termine attorno al 1854, sarebbe rimasto tuttavia nell oscurità. Infatti, l eccentrico genio britannico non pubblicò le sue scoperte e solo studi recenti delle sue note manoscritte hanno permesso di identificarlo come il pioniere della decifrazione della chiave polialfabetica. Per la fortuna dei crittoanalisi del mondo intero, pochi anni dopo, nel 1863, l ufficiale prussiano Friedrich Krasiski rese pubblico un metodo simile. Indipendentemente da chi fu il primo a riuscire nell impresa, è evidente che, alla fine del XIX secolo, la cifratura polialfabetica aveva smesso di essere impenetrabile. A partire da quel momento, la forza di una cifratura sarebbe dipesa non tanto da grandi innovazioni negli algoritmi di criptazione, ma dal numero di alfabeti cifrati possibili, che doveva essere abbastanza grande da rendere del tutto impraticabile l analisi delle frequenze e le sue varianti. Sull altro fronte, l obiettivo diventava l adozione di meccanismi che permettessero di snellire la crittoanalisi. Entrambe le ricerche convergevano verso uno stesso punto e diedero vita ad uno stesso processo: la meccanizzazione, usando macchine per codificare e decodificare, fino ad arrivare ai computer, passando per Enigma CIFRARIO ADFGVX Nel XX secolo la telegrafia (su fili) fu sostituita dalla comunicazione senza fili, con l invenzione della radio. In questo modo i messaggi erano relativamente facili da intercettare. Questo procurò ai crittoanalisi grandi quantità di materiale cifrato su cui lavorare e consolidò la loro posizione di forza, dato che tutte le cifrature utilizzare utilizzavano algoritmi già noti. Il decrittaggio dei codici tedeschi durante la I guerra mondiale fece capire che occorreva una cifratura più sicura. La lotta fra crittografi e crittoanalisi è la guerra occulta dietro ai due conflitti mondiali. In particolare, il cifrario usato dai tedeschi nella prima guerra mondiale si chiamava cifrario ADFGVX ed era costituito da due parti: sostituzione e trasposizione. Nella prima fase (sostituzione) si considera una griglia di caratteri di sette righe e sette colonne dove la prima riga e la prima colonna sono formate dai caratteri ADFGVX. I 36 caratteri interni alla tabella (26 lettere e i primi 10 numeri) sono disposti in modo casuale. La disposizione degli elementi è la chiave di questo cifrario ed anche il ricevente deve conoscerla. A D F G V X A O P F 0 Z C D G 3 B H 4 K F A 1 7 J R 2 G 5 6 L D E T V V M S N Q I X U W 9 X Y 8 Ogni carattere del messaggio viene tradotto con un coppia di lettere dell insieme ADFGVX, quelle nelle righe e colonne corrispondenti. Ad esempio, se si vuole cifrare il numero 4 si scriverà DV. Il messaggio «OBIETTIVO PARIGI» si cifrerebbe così: o b i e t t i v o p a r i g i AA DF VX GV GX GX VX VA AA AD FA FV VX DA VX Finora si tratta di una sostituzione e basterebbe un analisi delle frequenze per decifrare il messaggio. La seconda fase (trasposizione) dipende da una chiave concordata. Si costruisce una griglia con tante colonne quante le lettere della parola chiave e si riempiono le sue caselle con il testo cifrato. Nella prima riga si scrive la parola chiave ( BETA nell esempio sottostante). Le caselle vuote si riempiono con i caratteri del numero zero (AG). B E T A A A D F V X G V G X G X V X V A A A A D 9

10 F A F V V X D A V X A G Ora si scambiano le colonne secondo l ordine alfabetico della parola chiave. A B E T F A A D V V X G X G X G A V X V D A A A V F A F A V X D G V X A Il messaggio cifrato sono le lettere prese per colonna: «FVXADVAGAVGVAFVVAXXXAAXXDGGVAFDA» Il messaggio risulta una mescolanza delle lettere A,D,F,G,V,X. I tedeschi scelsero questi caratteri perché la loro codifica in codice morse differisce molto gli uni dagli altri, permettendo al destinatario di riconoscere più facilmente eventuali errori di trasmissione. Il ricevente deve conoscere la distribuzione casuale dei caratteri della tabella base e la parola chiave per invertire il cifrato. Esercizio: trovare l algoritmo inverso, per decifrare il messaggio ENIGMA Nel 1923 l ingegnere tedesco Arthur Scherbius brevettò ENIGMA, una macchina per crittografare. Non è altro che una versione migliorata del disco di Alberti, realizza cioè una crittazione polialfabetica. Era siile ad una macchina da scrivere, con una tastiera e un tabellone luminoso di 26 lettere, tre rotori (scambiatori) con 26 possibili posizioni e una plugboard (pannello con spinotti) fra la tastiera e il primo rotore il cui compito era di effettuare una prima sostituzione di lettera in funzione del modo in cui venivano disposti gli spinotti. L emittente disponeva innanzitutto gli spinotti per lo scambio delle lettere e i rotori nella posizione specificata da un libro delle chiavi. Dopo digitava la prima lettera del messaggio in chiaro e la macchina generava la lettera codificata illuminandola sul display. A questo punto il primo scambiatore ruotava automaticamente alla posizione successiva fra le 26 possibili. Si aveva così una nuova cifratura; quindi l emittente digitava la seconda lettera e così via. Per decodificare il messaggio bastava introdurre i caratteri cifrati in un altra macchina ENIGMA con gli stessi parametri della prima. I tre rotori collegati in serie (quando il primo terminava un giro iniziava il secondo ) davano 26 3 = possibili cifrature. La plugboard permetteva di scambiare tra loro coppie di lettere ed aggiungeva così altre combinazioni. C erano 6 cavi con cui si potevano scambiare 6 coppie di lettere. Il numero di modi per collegare n coppie di lettere scelte in un alfabeto di N caratteri è dato dalla formula: 10

11 N! n N 2n! n!2 Dove N=26 e n=6. Risultato: combinazioni. Ricapitolando: a) gli scambiatori danno 26 3 = combinazioni; b) i tre scambiatori possono scambiarsi tra loro, dando 3!=6 diverse combinazioni; c) i sei cavi di cablaggio danno di combinazioni. Il numero totale di chiavi è il prodotto di questi numeri cioè (dieci mila miliardi). Una chiave di ENIGMA era quindi composta da: la posizione del cablaggio per ognuno dei sei scambi di lettere possibili, l ordine dei rotori, la loro posizione di partenza. Queste indicazioni erano trasmesse in forma criptata e cambiate giornalmente. Grazie alle informazioni avute da spie tedesche, i polacchi riuscirono ad decodificare enigma. Un matematico polacco, Rejewski riuscì a ridurre le chiavi possibili a combinazioni. Costruì una macchina decodificatrice simile ad enigma, chiamata Bomba, che trovava la chiave in meno di 24 ore. Nel 1938 i tedeschi aggiornarono ENIGMA passando da 3 a 5 rotori e da 6 a 10 cavi. Il numero di combinazioni aumentò a 159 trilioni. La macchina polacca non bastava più, si doveva cambiare approccio e i polacchi passarono il lavoro agli alleati inglesi che riunirono i migliori crittoanalisi in una casa alla periferia di Londra, Bletchley Park. Fra questi c era Alan Turing. Riuscì a decodificare ENIGMA ma soprattutto gettò le basi per la costruzione del primo computer programmabile, Colossus, realizzato da Max Newman nel NAVAJO Come curiosità bisogna riportare l iniziativa degli americani nella seconda guerra mondiale che usarono indiani Navajo come Navajo code talker. La lingua Navajo è difficilissima e con una grammatica particolare non confrontabile con nessun altra lingua; oltretutto e una lingua solo orale. A quel tempo esistevano non più di trenta persone non-navajo al mondo che potevano capire quella lingua, e tutti viventi in USA. Gli americani li usarono nell area del Pacifico CIFRARIO DI HILL Nel 1929 un matematico americano, Lester Hill, ideò un sistema di crittazione basato sulle matrici. Per cifrare un messaggio usiamo una matrice a b A che abbia det(a) = 1 (In generale deve essere 1 il MCD fra n (la grandezza dell alfabeto) e il c d determinante) Per decifrare useremo la matrice inversa A 1 d c b a Esempio: Prendiamo un alfabeto di 27 caratteri (spagnolo) e aggiungiamo un carattere spazio bianco (Ф) A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z Ф Per poter ottenere valori fra 0 e 27, lavoreremo in modulo 28. Troviamo una matrice di cifratura di determinante 1: A A Il messaggio da codificare è «HOY». Si raggruppano i caratteri del messaggio in coppie: HO - YФ. Le loro corrispondenti numeriche sono (7,15) (25,27). Si moltiplica la matrice per ogni coppia di cifre: mod che corrisponde ai caratteri (X, H) 11

12 mod Il messaggio «HOY» si codifica «XHVO». che corrisponde ai caratteri (V, O) Per decodificare si usa la matrice inversa. Si cerca l equivalente numerico delle coppie XH e VO e si moltiplica per l inversa: mod che corrisponde ai caratteri (H, O) mod che corrisponde ai caratteri (Y, Ф) Ovviamente questo lavoro va fatto con matrici molto grandi come chiavi. Anche questo è un cifrario a sostituzione polialfabetica. E un cifrario ben resistente ad un attacco in cui si conosce solo il testo cifrato, perché non c'è analisi della frequenza che tenga. Ma è invece vulnerabile ad un attacco known plaintext, ovvero quando ho una coppia testo in chiaro - testo cifrato. Anzi, ad essere precisi, qui mi servono m coppie di testo in chiaro e cifrato. Il motivo è piuttosto semplice. Qui parliamo di matrici, che indico con le lettere maiuscole. X è la matrice dei miei m testi in chiaro, messi per colonna Y è la matrice dei corrispondenti m testi cifrati, messi anche loro per colonna K è la matrice della chiave, a me ignota Sappiamo come è fatto Hill: Y = K * X dove K * X è una moltiplicazione per matrici. Ma se è vero questo, allora è sicuramente vero che: Y * X-1 = K * X * X-1 => Y * X-1 = K Infatti, se ho X, so anche calcolare la sua inversa (se possibile), e se moltiplico a destra e a sinistra, ottengo esattamente la cosa qui sopra, ovvero la matrice K! CIFRARIO PLAYFAIR Il cifrario Playfair funziona così: Una tabella 5 x 5 Nella prima riga c è una chiave di 5 lettere. J A M E S B C D F G H I - K L N O P Q R T U V W X Y Z In un primo passaggio tutti i caratteri del messaggio in chiaro sono suddivisi in digrafi, cioè in coppie di lettere. Le due lettere di ogni coppia devono essere differenti; si utilizza il carattere x se non lo sono. Se il messaggio in chiaro è «GATTO» la divisione in digrafi sarà GA Tx TO. Il messaggio «TRE» diventa TR Ex. Ora si passa alla codifica. Se entrambe le lettere del digrafo compaiono sulla stessa riga della tabella, i caratteri si sostituiscono con la lettera seguente nell ordine della tabella (la coppia JE si sostituirebbe con AS); se le lettere del digrafo si trovano sulla stessa colonna si sostituiscono con la lettera sotto (ET diventa FY e TY diventa YE); altrimenti per codificare la prima lettera 12

13 del digrafo si osserva la riga in cui si trova fino a incrociare la colonna che contiene la seconda lettera; la cifra della lettera in chiaro è quella che si trova nell intersezione. Lo stesso per la seconda lettera (CO diventa GI oppure GK). Esempio: Per cifrare il messaggio «RBA», prima si trasforma il messaggio così: RB Ax La R diventa P; La B diventa D; la A diventa M; La X diventa W. Il messaggio cifrato è «PDMW». 13

14 2. OGGI Con l avvento dei computer tutto cambia. La forza bruta può essere usata agevolmente per decrittare, ma, d altro canto, possono essere usate chiavi molto più lunghe. Basta un analizzatore di rete come un software packet sniffer che intercetta il traffico di rete per avere del materiale su cui lavorare. I crittografi moderni continuarono comunque ad essere esposti al pericolo che qualche indesiderato trovasse le chiavi e, conoscendo l'algoritmo di criptazione, fosse così in grado di decifrare il messaggio. Questa debolezza fondamentale di tutto il sistema "classico" di crittografia è conosciuta come il problema della distribuzione della chiave. Da quando la comunità crittografica concordò che la protezione delle chiavi, più che quella dell'algoritmo, era l'elemento fondamentale da garantire per la sicurezza del crittosistema, si doveva affrontare il problema di come procedere alla distribuzione delle chiavi in modo sicuro. C erano seri problemi logistici, come, ad esempio, distribuire migliaia di libri contenenti le chiavi necessarie ad un esercito di grandi dimensioni o ai centri di comunicazione mobili che si trovavano ad operare in circostanze estreme, come l'equipaggio dei sottomarini o le unità dislocate al fronte. In effetti, non importa quanto possa essere sofisticato un sistema di criptazione "classico": esso resterà sempre vulnerabile una volta che la sua chiave sia stata intercettata. La trasmissione stessa della chiave è di per sé un messaggio, così che anche questa deve essere criptata e con una chiave che deve essere stata scambiata in precedenza. Supponiamo però che un mittente qualsiasi, chiamato Alice, cripti un messaggio con una chiave propria e lo inoltri ad un destinatario, Bob. Questi cripta di nuovo il messaggio cifrato con un'altra chiave propria e lo restituisce al mittente. Alice decifra il messaggio con la sua chiave ed invia questo nuovo messaggio, che ora è solo cifrato con la chiave di Bob, che procede a decifrarlo. Il millenario problema dello scambio sicuro di chiavi è stato risolto. È davvero così? In realtà no. Infatti, in tutti gli algoritmi di cifratura complessa, l'ordine in cui si applica la chiave è fondamentale ed abbiamo visto che nel nostro esempio teorico, Alice deve decifrare un messaggio già cifrato con un'altra chiave. II risultato di invertire l'ordine dei cifrari sarebbe un linguaggio incomprensibile. Il problema non è risolto, però con questa idea si ha il percorso da seguire. Fino a poco tempo fa le chiavi di un mittente e di un ricevente dovevano essere uguali o quanto meno simmetriche: dovevano servire sia per criptare che per decifrare. Questo tipo di crittografia si chiama a chiave privata. La chiave è un segreto condiviso fra mittente e ricevente e per questo il sistema è vulnerabile. Si pensava che non fosse possibile cifrare un messaggio usando una chiave e decifrarlo usandone un altra. Questo non è vero. Oggi gli algoritmi di criptazione consistono di almeno due chiavi: una privata e una pubblica. Il meccanismo di trasmissione è: il mittente utilizza la chiave pubblica del destinatario per criptare il messaggio. Il ricevente utilizza la sua chiave privata per decifrare il messaggio ricevuto. C è un importante vantaggio: mittente e ricevente non devono prima vedersi per decidere le chiavi, per cui il sistema è più sicuro. Questa è la crittazione a chiave pubblica, base della sicurezza di tutte le reti di comunicazione attuali. La crittografia asimmetrica, conosciuta anche come crittografia a coppia di chiavi, crittografia a chiave pubblica/privata o anche solo crittografia a chiave pubblica è un tipo di crittografia dove, come si evince dal nome, ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi: 1) la chiave pubblica, che deve essere distribuita; 2) la chiave privata, appunto personale e segreta; evitando così qualunque problema connesso alla necessità di uno scambio in modo sicuro dell'unica chiave utile alla cifratura/decifratura presente invece nella crittografia simmetrica. Il meccanismo si basa sul fatto che, se con una delle due chiavi si cifra (o codifica) un messaggio, allora quest'ultimo sarà decifrato solo con l'altra. E bene spiegare ulteriormente questo che è il concetto fondamentale della crittografia moderna. L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale, in cui il mittente è Alice ed il destinatario Bob, i lucchetti fanno le veci delle chiavi pubbliche e le chiavi recitano la parte delle chiavi private: Alice chiede a Bob di spedirle il suo lucchetto, già aperto. La chiave dello stesso verrà però gelosamente conservata da Bob. Alice riceve il lucchetto e, con esso, chiude il pacco e lo spedisce a Bob. Bob riceve il pacco e può aprirlo con la chiave di cui è l'unico proprietario. Se adesso Bob volesse mandare un altro pacco ad Alice, dovrebbe farlo chiudendolo con il lucchetto di Alice (che lei dovrebbe aver preventivamente dato a Bob) che solo lei potrebbe aprire. 14

15 Si può notare come per mettere in sicurezza il contenuto dei pacchi ci sia bisogno del lucchetto del destinatario, mentre per aprirli viene usata esclusivamente la propria chiave segreta, rendendo l'intero processo di cifratura/decifratura asimmetrico (una chiave per cifrare ed una differente per decifrare). Chiunque intercettasse il lucchetto (aperto) o il messaggio chiuso con il lucchetto non potrebbe leggerne il contenuto poiché non ha la chiave. Uno dei vantaggi della crittografia asimmetrica sta nel fatto che le chiavi pubbliche possono essere scambiate anche utilizzando un mezzo insicuro, come Internet. Usando un'altra analogia si può dire che il metodo è analogo a quello di una cassaforte che abbia due chiavi distinte, una usata per aprirla (chiave segreta), l'altra per chiuderla (chiave pubblica). Con la crittografia asimmetrica si risolve il problema della riservatezza: criptando il messaggio con la chiave pubblica solo il possessore della chiave privata è in grado di decriptarlo. Si risolve anche il problema della autenticità del mittente: criptando il messaggio con la chiave privata solo con la corrispondente chiave pubblica questo può essere decriptato e la chiave pubblica è conservata in registri consultabili ma gestiti in modo sicuro dove ad ogni chiave pubblica è associata l identità certa del proprietario. E possibile autenticare, oltre al mittente, anche il contenuto del messaggio, generando un hashing dello stesso (vedi più avanti) e aggiungendolo in fondo al messaggio: nel caso in cui ci fosse un alterazione durante la trasmissione del messaggio, alla decodifica l hashing sarebbe diverso e quindi il destinatario può accorgersi dell anomalia. E anche possibile ottenere contemporaneamente sia la riservatezza della comunicazione che l autenticazione, combinando assieme le due modalità. Alice cifra il messaggio con la chiave pubblica di Bob e quindi solo Bob lo può decifrare con la sua chiave privata; contemporaneamente Alice firma il messaggio la sua chiave privata: alla sua ricezione Bob, sapendo che il mittente è Alice, prova a decrittarlo con la chiave pubblica di Alice così può autenticare Alice come mittente dato che solo chi ha la chiave privata ha potuto cifrare il messaggio. Inoltre il messaggio è anche cifrato con la chiave pubblica di Bob e quindi la trasmissione risulta inviolabile da chi non è in possesso della chiave privata di Bob: è quindi garantita anche la riservatezza. Nella crittografia simmetrica invece (quella tradizionale ), che basa la sicurezza del sistema sulla segretezza della chiave di codifica/decodifica utilizzata, si rende necessario utilizzare un canale sicuro per la trasmissione della chiave, poiché l'intercettazione della stessa, da parte di terzi, vanificherebbe la sicurezza del sistema stesso. Figura A.1: Crittografia simmetrica. Ripeto ulteriormente: ognuno ha due chiavi: una pubblica da distribuire a tutti quelli con cui vuole comunicare, e una privata da tenere segreta. Ciò che viene cifrato con la chiave pubblica (operazione che può essere fatta da chiunque) può essere decifrato solo con la chiave privata corrispondente (operazione che può essere fatta solo dal proprietario della chiave): in questo modo non c'è più il problema di comunicare segretamente la chiave, perché questa è nota a tutti; per comunicare in modo sicuro con una persona basta cifrare il messaggio con la sua chiave pubblica, come illustrato in figura. Gli algoritmi di questo tipo sono detti a chiave asimmetrica, e il più noto tra essi è RSA. Figura A.2: Crittografia asimmetrica. Si potrebbe pensare che dopo l'invenzione della crittografia a chiave pubblica quella a chiave segreta abbia perso interesse, ma le cose non stanno così. Gli algoritmi asimmetrici sono infatti computazionalmente molto più onerosi di quelli simmetrici, per cui il loro uso risulta molto più pesante. Una soluzione comunemente adottata è l'uso della 15

16 crittografia asimmetrica per concordare una chiave segreta da utilizzare poi per scambiarsi i messaggi tramite un algoritmo a chiave simmetrica: in questo modo il pesante algoritmo a chiave pubblica viene usato solo per trasmettere una piccola quantità di dati (la chiave segreta), mentre per il resto si usa il più leggero algoritmo a chiave segreta DES E un algoritmo simmetrico diventato lo standard USA per la protezione dei dati. Usa una chiave segreta di 64 bit di cui 8 sono di controllo. Il testo viene suddiviso in blocchi da 8 byte. In ASCII ogni blocco sono 64 bit a cui viene applicata una trasposizione basata sulla chiave poi si applica per 16 volte una funzione cifrante usando metà della chiave (28 bit) che ad ogni iterazione viene shiftata di un certo numero di bit. Quindi è un cifrario misto perché le trasformazioni sono sia di trasposizione che di sostituzione. Alla fine viene effettuata una trasposizione inversa a quella iniziale. La decifratura si fa applicando i passi nell ordine inverso e con la stessa chiave. Le chiavi possibili sono solo E stato violato nel 1998, ma nonostante questo è ancora utilizzato, per esempio per cifrare file su un disco locale DES Stesso algoritmo del DES ma utilizzando chiavi più lunghe e più passaggi di cifratura. Usa tre passi di cifratura DES consecutivi con tre chiavi diverse di lunghezza totale 168 bit. Viene utilizzato nelle transazioni commerciali che utilizzano carte di credito IDEA Ideato in sostituzione del DES, usa una chiave da 128 bit dove i blocchi da 64 bit del messaggio vengono elaborati in 8 iterazioni tutte uguali usando lo XOR, la somma mod 2 16 e la moltiplicazione mod Lo XOR e l addizione sono operazioni invertibili (necessario per poter decodificare il messaggio). La moltiplicazione mod M è invertibile se entrambi i fattori sono primi con M = è un numero primo quindi è invertibile. In ognuno degli 8 passi (round) si usano 6 sottochiavi. Poi c è un nono passo, leggermente diverso, che usa 4 sottochiavi, per un totale di 52 sottochiavi. Il messaggio viene diviso in 4 gruppi da 16 bit e mescolato con 6 chiavi da 16 bit estratte dalla chiave di 128. Per generare le sottochiavi: la chiave da 128 è suddivisa in 8 blocchi da 16. Queste sono le prime 8 sottochiavi. Le cifre della chiave da 128 sono shiftate a sinistra di 25 bit. La nuova chiave è raggruppata in 8 blocchi da 8 bit. Queste sono ulteriori 8 sottochiavi. Si ripete il secondo passo fino a generare 52 sottochiavi. Non è ancora stato violato. La chiave a 128 bit lo assicura contro gli attacchi brute force. E utilizzato nei sw commerciali di crittografia perché molto veloce AES 2.5. L ALGORITMO DI DIFFIE-HELLMAN Nel 1976 due giovani ricercatori statunitensi, Whitfield Diffìe e Monte Hellman, idearono un sistema per cui due individui scambiavano messaggi cifrati, senza per questo dover scambiare alcuna chiave. Questo metodo si serve dell'aritmetica modulare, così come delle proprietà dei numeri primi contenuti nelle operazioni. Il cuore della crittografia asimmetrica è una funzione difficile da invertire a meno di conoscere la chiave; la funzione di decodifica non deve essere deducibile da quella di codifica. L idea è la seguente: 1) Alice sceglie un numero qualsiasi, che mantiene segreto. Chiameremo questo numero N M1. 2) Bob sceglie un altro numero qualsiasi, che, a sua volta, mantiene segreto. Chiameremo questo numero N P1. 16

17 3) Successivamente, sia Alice che Bob applicano ai loro rispettivi numeri una funzione dei tipo f(x) = a x mod p, essendo p un numero primo conosciuto. Alice ottiene da detta operazione un nuovo numero, N M2, che questa volta invia a Bob. Bob ottiene da tale operazione un nuovo numero N P2, che invia a Alice. 4) Alice risolve un'equazione del tipo e ottiene come risultato un nuovo numero, C M. 5) Bob risolve un'equazione del tipo e ottiene come risultato un nuovo numero, C P. Anche se sembra sorprendente, C M e C P saranno uguali. Si noti che l'unico momento in cui sia Alice che Bob si sono scambiati informazioni, è stato allo stabilire la funzione f (x) ed all'atto di inviare N M2 e N P2 che non sono le chiavi e la cui eventuale intercettazione, dunque, non compromette la sicurezza del crittosistema. La chiave di questo sistema avrà la forma generale a N M N 1 P1 modulo p. E anche importante tener conto che la funzione originale ha la particolarità di non essere reversibile, cioè, conoscendo sia la funzione che il risultato, applicandola ad una variabile x, risulta impossibile (o molto difficile) ottenere la variabile x originale. Esempio: La funzione scelta è: f(x)=7 x mod 11 1) Alice sceglie un numero N M1, per esempio il 3 e calcola f(x)= 7 x mod 11 ottenendo f (3)=7 3 =2 mod 11. 2) Bob sceglie un numero N P1 per esempio il 6 e calcola f(x)= 7 x mod 11 ottenendo f (3)=7 6 =4 mod 11. 3) Alice manda a Bob il suo risultato, 2, e Bob fa lo stesso con il suo, 4. 4) Alice calcola 4 3 = 9 mod 11. 5) Bob calcola 2 6 = 9 mod 11. Questo valore, 9, sarà la chiave del sistema. Mario e Pietro hanno scambiato sia la funzione f(x), sia i numeri 2 e 4. Una possibile spia che tipo di informazioni riesce ad estrapolare da questi dati? Supponiamo che la nostra spia conosca sia la funzione che i numeri. Il suo problema è ora risolvere 7 N M 1 2 e 7 N P 1 4, essendo N M1 e N P1 i numeri che sia Alice che Bob mantengono segreti. N M 1NP1 Se riesce a trovarli disporrà della chiave risolvendo a mod p. La soluzione a questo problema si chiama in matematica logaritmo discreto. La particolarità di questo tipo di equazioni è che sono difficilmente reversibili (o anche, asimmetriche). Per valori di p di oltre 300 cifre e di a di oltre 100, la soluzione e, quindi, il riconoscimento della chiave, risulta difficilissima. Quest'algoritmo è oggi uno dei pilastri della crittografia moderna. L algoritmo di Diffie-Hellman dimostrò, teoricamente, la possibilità di creare un metodo crittografico che non richiedesse uno scambio di chiavi ma che si fondasse sulla comunicazione pubblica di parte del processo (la coppia di numeri iniziali che servono a determinare la chiave). In altre parole, si era dimostrata la fattibilità di un sistema crittografico i cui emittenti e riceventi non dovevano incontrarsi per stabilire le chiavi. Tuttavia rimanevano ancora alcuni inconvenienti: se Alice desiderava inviare un messaggio a Bob, doveva aspettare che l'altro gli rispondesse per procedere con la generazione della chiave. Nel tentativo di scoprire nuovi algoritmi di maggiore efficacia, Diffie teorizzò un crittosistema nel quale la chiave di codificazione fosse diversa da quella di decodificazione e che, ovviamente, non fossero derivabili una dall'altra. In questo crittosistema teorico, l'emittente avrebbe a disposizione due chiavi: quella di criptazione e quella di decriptazione. Delle due, renderebbe pubblica solo la prima, affinché tutti quelli che desiderano inviargli un messaggio, possano criptarlo. Una volta ricevuto il messaggio, il mittente procederebbe a decifrarlo con la chiave di decriptazione, che ovviamente, sarebbe rimasta segreta. Come si poteva realizzare questo sistema? 17

18 2.6. RSA Nell'agosto del 1977, il famoso divulgatore scientifico statunitense Martin Gardner pubblicò, nella sua colonna di Ricreazioni matematiche della rivista Scientific American, un articolo intitolato "Un nuovo tipo di cifrario, per cui ci vorrebbero milioni di anni per poterlo decifrare". Pubblicò un messaggio cifrato e la chiave pubblica N impiegata: N = Gardner sfidò i lettori a decifrare il messaggio ed indicò come traccia che la soluzione richiedeva di fattorizzare N nei suoi componenti primi p e q. Come ricompensa, Gardner promise un premio di 100 dollari al primo che rispondesse correttamente. Chiunque avesse desiderato maggiori informazioni sul cifrario in questione, scrisse Gardner, poteva inviare una richiesta al riguardo, al Laboratorio d'informatica del MIT, all'attenzione dei suoi creatori Ron Rivest, Adi Shamir e Len Adelman. La risposta corretta non fu ricevuta, se non 17 anni dopo e per trovarla fu necessaria la collaborazione di più di 600 persone. Le chiavi risultarono essere p = e q= ed il messaggio cifrato, "the magic words are sqweamish ossifrage" ("1e parole magiche sono schizzinose ossifraghe"). L algoritmo presentato da Gardner è conosciuto come RSA, acronimo dei cognomi Rivest, Shamir e Adelman. Si tratta della prima realizzazione pratica dei modello di chiave pubblica proposto da Diffie ed oggigiorno è impiegata abitualmente. La sicurezza offerta è estrema, visto che il processo di decifrazione è incredibilmente laborioso, anche se non impossibile. Questo metodo ha finora resistito a tutti gli attacchi, ma ha lo svantaggio di usare una chiave almeno di 1024 bit contro i 128 degli algoritmi a chiave simmetrica. Per una decodifica efficace di un messaggio è di vitale importanza che il messaggio cifrato abbia un inverso (per poterlo decodificare). Un modo per assicurarsi questo punto è quello di lavorare in modulo un numero primo. Il prodotto di primi costituisce una funzione non reversibile nel senso che, una volta effettuato il prodotto, risulta molto difficile accertare il valore dei fattori originali. L algoritmo RSA è basato su alcune proprietà dei numeri primi. E un sistema a chiave pubblica perché la chiave di criptazione è messa a disposizione degli emittenti che vogliono inviare messaggi. Ogni ricevente possiede una chiave pubblica propria. I messaggi saranno trasmessi tradotti in numeri. Innanzitutto, Alice genera un valore n come prodotto di due numeri primi p e q (n = pq) e si sceglie un valore e in modo che il MCD (φ(n), e) = 1. [Vedi riferimenti matematici]. Ricordiamo che φ(n)=(p-1)(q-1). [Vedi riferimenti matematici]. I dati che diventano pubblici sono il valore di n ed il valore di e (in nessuna circostanza forniremo i valori p e q). La coppia (n, e) è la chiave pubblica del sistema, ed i valori p e q sono conosciuti come numeri RSA. Alice calcola l'unico valore d in modulo φ(n) che verifica de=1 cioè l inverso di e in modulo φ(n). Questo inverso esiste perché MCD(φ(n), e) =1. Questo valore d è la chiave privata del sistema. Da parte sua, Bob impiega la chiave pubblica (n, e) per criptare il messaggio m, mediante la funzione M=m e mod n. Ricevuto il messaggio criptato M, Alice realizza l'operazione M d =(m e ) d mod n. Questa espressione equivale a M d =(m e ) d =m mod n, che dimostra che il messaggio può essere decifrato. Esempio: Se p=3 e q=11, si ha che n=33. φ(33)=(3-1).(11-1)=20. Alice sceglie e in modo che non abbia divisori comuni con 20, per esempio e=7. La chiave pubblica di Alice è (33,7). Nel frattempo, Alice ha calcolato una chiave privata d che sarà l'inverso di 7 mod 20, cioè 7 3=1 mod 20, e cioè d = 3. Bob desidera inviare il messaggio "9", cioè M=9. Per cifrarlo fa uso della chiave pubblica di Alice e risolve: 9 7 = = 15 mod 33 Il messaggio cifrato è "15". Bob manda il messaggio. Alice riceve il messaggio " M = 15" e lo decifra con l'operazione: 15 3 =3.375=9 mod 33. Il messaggio è stato decifrato correttamente. Mano a mano che si scelgono primi p,q di maggior dimensione, la difficoltà ad implementare l'algoritmo RSA aumenta, fino al punto che diventa necessario l'uso del computer per il calcolo delle congruenze. Per esempio, essendo p=23 e 18

19 q=17, si ha che n = 391. La chiave pubblica risultante per e=3 è (391,3). Di conseguenza, d=235. Per un messaggio piano come"34", l'operazione di decifrazione è: =34 mod 391 Si osservi il grado della potenza e si pensi alla gigantesca capacità di calcolo necessaria per trovare la congruenza. Ricapitolando: 1. Bob sceglie due numeri primi molto grandi, p e q. 2. Bob calcola n=pq e φ(n)=(p-1)(q-1) (la funzione φ(n), detta funzione fi di Eulero, indica il numero di elementi interi primi rispetto a n). 3. Bob sceglie un numero b, tale che 0 b φ(n), primo rispetto a φ(n). 4. Bob calcola a=b -1 mod φ(n) (ovvero trova quel numero a tale che ab=1 mod φ(n)). Per come è stato scelto b, tale numero esiste ed è unico, e si può calcolare con un algoritmo detto di Euclide. 5. Bob rende disponibili i valori n e b, che costituiscono la sua chiave pubblica, e tiene segreti i valori p, q ed a, che costituiscono la sua chiave privata. L'uso di RSA per la cifratura funziona come segue: 1. Sia x il testo in chiaro del messaggio che Alice vuole mandare a Bob cifrandolo. Alice calcola y=x b mod n e lo manda a Bob. 2. Bob riceve y da Alice, e può decifrare il messaggio calcolando x=y a mod n. RSA può essere utilizzato per la firma nel modo seguente: 3. Sia x il testo in chiaro del messaggio che Bob vuole mandare ad Alice firmandolo. Bob calcola la firma come y=x a mod n e la manda ad Alice. 4. Alice riceve x e y da Bob, e verifica che sia x=y b mod n. Se è così la firma è autentica, altrimenti è falsa. La sicurezza di RSA si basa sulla congettura dell'intrattabilità del problema della scomposizione in fattori primi, per cui un intruso, noti n e b, non può calcolare a perché non conosce p e q (e quindi φ(n)). Perché dovremmo fidarci dell'algoritmo RSA? Un'eventuale spia conosce i valori di z e di e, per il fatto che sono pubblici. Per decifrare il messaggio ha anche bisogno del valore di d, la chiave privata. Come si è mostrato nell'esempio precedente, il valore d è generato a partire da n e da e. Da dove nasce la sicurezza? Ricordiamo che per costruire d bisogna conoscere φ(n)=(p-1)(q-1), in particolare, p e q. Per questo "basta" scomporre n come prodotto di due numeri primi p e q. Il problema per la spia è che fattorizzare un numero grande come prodotto di due numeri primi costituisce un processo lento e laborioso. Se n è sufficientemente grande, (dell ordine di più di 100 cifre) non c è modo conosciuto di trovare p e q in un periodo di tempo ragionevole. Attualmente i numeri primi impiegati nella cifratura di messaggi superano le 200 cifre. RSA è il metodo più utilizzato per la cifratura di firme digitali. Nella pratica è un algoritmo computazionalmente pesante. Le funzioni matematiche che generano il codice cifrato e quelle inverse per decifrarlo sono troppo lente per essere utilizzate nella cifratura di interi documenti. Viene utilizzato in un altro modo. Attualmente l algoritmo RSA è molto utilizzato per codificare il messaggio contenete la chiave da scambiarsi per poi utilizzare un algoritmo tipo AES (simmetrico, più semplice e veloce) per scambiarsi i messaggi. Questo è un sistema di crittografia ibrida. In un sistema di crittografia ibrida utilizziamo la crittografia asimmetrica a chiave pubblica soltanto per comunicare la chiave segreta che poi verrà usata per una comunicazione basata su crittografia simmetrica PGP L algoritmo RSA richiede molto tempo di computazione e computer con elevata velocità di calcolo. Fino agli anni '80 solo i governi, l'esercito e le grandi imprese avevano computer sufficientemente potenti per lavorare con RSA. Nel 1991 Phil Zimmermann, fisico statunitense preoccupato della privacy degli utenti della rete, offrì gratuitamente il sistema PGP (Pretty Good Privacy), un algoritmo di criptazione capace di funzionare su computer domestici. Il PGP utilizza la codificazione simmetrica classica - fattore che gli conferisce maggiore rapidità - però cifra le chiavi con una cifratura asimmetrica RSA (crittografia ibrida). 19

20 L uso di PGP si è andato espandendo e oggi è il più importante strumento crittografico privato disponibile utilizzato soprattutto per codificare le . Si può anche firmare digitalmente l ; per farlo usa l algoritmo SHA-2 (vedi avanti) AUTENTICAZIONE DI MESSAGGI La sicurezza di un sistema non è solo nella riservatezza. Come evitare, ad esempio, che qualcuno falsifichi l indirizzo di origine di una mail? Come essere sicuri dell identità del mittente? Non è quindi solo la segretezza il problema, ma anche l autenticazione e l integrità dei documenti. Come essere sicuri dell identità del mittente? Come essere sicuri che il messaggio cifrato sia arrivato integro, senza modifiche? La crittografia a chiave pubblica viene utilizzata soprattutto per autenticare un mittente, cioè per avere la certezza dell identità dell autore (firma digitale - vedi più avanti). Furono proprio Diffie e Hellman a proporre un modo molto ingegnoso di impiegare la criptazione a chiave pubblica, per accreditare l'origine di un messaggio. In un crittosistema di questo tipo, l'emittente cifra il messaggio con la chiave pubblica del ricevente, che successivamente impiega la propria chiave privata per decifrarlo. Diffie e Hellman si accorsero che l'algoritmo RSA ed altri simili mostravano un'interessante simmetria: la chiave privata poteva essere impiegata anche per cifrare un messaggio e la pubblica per decifrarlo. Quest'operazione non fornisce alcuna sicurezza - la chiave pubblica è a disposizione di tutti - ma assicura al ricevente che il messaggio proviene da un'emittente preciso: il proprietario della chiave privata. Per autenticare il mittente di un messaggio è sufficiente, in teoria, aggiungere al processo di criptazione normale, un altro nel modo seguente: 1) Il mittente cripta un messaggio con la chiave pubblica del ricevente. Questo primo passo assicura la riservatezza. 2) Il mittente cripta di nuovo il messaggio, questa volta con la sua chiave privata. In questo modo, il messaggio risulta autenticato o firmato. 3) Il ricevente utilizza la chiave pubblica del mittente per risolvere la criptazione del secondo passo. L origine del messaggio è così verificata. 4) Il ricevente impiega ora la sua chiave privata per risolvere la criptazione del primo passo FUNZIONI HASH Uno dei problemi di questo sistema teorico è che la criptazione a chiave pubblica richiede una capacità di computazione considerevole e ripetere il processo, con lo scopo di firmare e verificare i messaggi, risulterebbe molto dispendioso. È per questo che, nella pratica, la firma di un messaggio si realizza tramite risorse matematiche conosciute come funzioni o algoritmi hash. Questi algoritmi generano, partendo dal messaggio originale, una catena semplice di bit (normalmente 160) chiamata hash e hanno l interessante proprietà di farlo in modo tale che la probabilità che a diversi messaggi venga associato uno stesso hash sia praticamente nulla. Allo stesso modo, è quasi impossibile invertire il processo ed ottenere il messaggio originale a partire dal suo hash. L hash di un messaggio qualsiasi è criptato dall'emittente con la sua chiave privata ed è inviato insieme al messaggio cifrato. Il ricevente decodifica il messaggio che contiene l hash con la chiave pubblica dell'emittente. Poi, dato che conosce la funzione hash impiegata da quello, applica al messaggio detta funzione e confronta entrambi gli hash. Se coincidono, l entità dell'emittente è verificata e può essere sicuro che nessuno ha manipolato il messaggio originale. Ricapitolando: Una funzione di hash è una funzione che, dato un qualunque messaggio di lunghezza arbitraria, ne produce un'impronta (detta digest o fingerprint) di lunghezza prefissata (di solito dell'ordine di bit). L'utilità di una funziona di hash sta nel poter utilizzare l'impronta come rappresentazione compatta del messaggio stesso, tipicamente firmando l'impronta anziché l'intero messaggio; perchè questo possa avvenire è desiderabile che la funzione presenti due proprietà particolari, sia cioè senza collisioni e unidirezionale. La funzione è anche detta one way hash perché è impossibile risalire al messaggio originale partendo da un valore hash. Una funzione di hash h(x) è detta senza collisioni se è computazionalmente impraticabile trovare due messaggi x e x tali che x x e h(x)=h(x ). Una funzione di hash h(x) è detta unidirezionale se, data un'impronta z, è computazionalmente impraticabile trovare un messaggio x tale che h(x)=z. 20

21 Le funzioni hash più note sono MD5 e SHA. SHA è lo standard governativo USA, più sicuro e lento. MD5 è lo standard per internet, più veloce MD5 Genera una stringa di 128 bit (32 caratteri) chiamata MD5 Checkum a partire da un messaggio di lunghezza qualsiasi. La crittografia tramite algoritmo MD5 viene applicata in tutti i settori dell'informatica che lavorano con il supporto delle firme digitali o che comunque trattano dati sensibili: Ad esempio, viene utilizzata per controllare che uno scambio di dati sia avvenuto senza perdite, semplicemente attraverso il confronto della stringa prodotta dal file inviato con quella prodotta dal file ricevuto. Con lo stesso metodo si può verificare se il contenuto di un file è cambiato (funzione utilizzata dai motori di ricerca per capire se una pagina deve essere nuovamente indicizzata). È diffuso anche come supporto per l'autenticazione degli utenti attraverso i linguaggi di scripting Web server-side (PHP in particolare): durante la registrazione di un utente su un portale internet, la password scelta durante il processo verrà codificata tramite MD5 e la sua firma digitale verrà memorizzata nel database. Successivamente, durante il login la password immessa dall'utente subirà lo stesso trattamento e verrà confrontata con la copia in possesso del server, per avere la certezza dell'autenticità del login SHA Algoritmi sviluppati dalla NSA americana, come modifiche all MD4 SHA-0 è obsoleto. SHA-1 è stato violato. SHA-2 è quello attualmente in uso. Comprende 4 varianti: SHA-224, SHA-256 (questo è quello utilizzato in Italia), SHA- 384, SHA-512 che producono digest rispettivamente da 224, 256, 384 e 512 bit. SHA-3 annunciato nel L elaborazione è simile a quella dell MD5, costituita da quattro fasi delle quali le prime due identiche all MD5. E alla base di applicazioni come PGP e di protocolli come SSL utilizzati dai siti di e-commerce per proteggere le transazioni online FIRMA DIGITALE Il problema più importante per un crittosistema a chiave pubblica risiede non nell'autenticazione dei messaggi, bensì in quella delle chiavi pubbliche stesse. Come fanno a sapere il mittente ed il ricevente che le chiavi pubbliche dell'altro sono, in effetti, quelle corrette? Supponiamo che una spia inganni il mittente dandogli la propria chiave pubblica, facendogli credere che si tratti di quella del ricevente. Se la spia riesce ad intercettare un messaggio può impiegare ora la sua chiave privata per decodificarlo. Per evitare di essere riconosciuta, la spia usa la chiave pubblica del ricevente, per criptare nuovamente il messaggio ed inviarlo al suo destinatario originale. È per questo che esistono istituzioni, sia pubbliche che private, dedicate alla certificazione di chiavi pubbliche. Un certificato di questo tipo contiene, oltre alla chiave corrispondente, informazioni sul ricevente e una data di scadenza. Gli enti detentori di queste chiavi rendono pubblici i loro certificati per le parti, che possono ora usarle e scambiarle con un certo grado di sicurezza. Ripeto il concetto: il mittente di un messaggio può firmarlo grazie alla sua chiave privata (che solo lui possiede), ma tutti sono in grado di verificare l'autenticità della firma grazie alla chiave pubblica (che è globalmente nota). La firma può poi essere abbinata alla normale cifratura, ottenendo messaggi firmati e cifrati, nel modo seguente (figura A.3). Si ipotizzi che Bob voglia mandare un messaggio ad Alice: per prima cosa lo cifrerà con la propria chiave privata (firma) e poi con quella pubblica di Alice (cifratura), infine spedirà il messaggio. Quando Alice lo riceverà, prima lo decifrerà con la propria chiave privata (operazione che solo lei può fare, per cui è garantita la confidenzialità) e poi con quella pubblica di Bob: se l'operazione va a buon fine Alice ha la certezza che il mittente è davvero Bob, perché solo lui può aver cifrato il messaggio con la propria chiave privata. In realtà il modo in cui si realizza la firma digitale non è proprio questo, ma è leggermente più complicato. Ciò che il mittente cifra con la propria chiave privata per garantire 21

22 l'autenticità non è l'intero messaggio, ma una sua ``impronta'' (detta digest) ottenuta mediante una particolare funzione (funzione di hash); il digest cifrato viene poi allegato al messaggio e ne costituisce la firma. Il destinatario calcola il digest del messaggio ricevuto (la funzione di hash è pubblica) e lo confronta con quello che ottiene decifrando con la chiave pubblica del mittente la firma allegata: se coincidono la firma è autentica. Figura A.3: Cifratura e firma digitale. Spesso non serve la segretezza ma basta l autenticazione e la certezza che il messaggio non venga modificato. E sufficiente che il messaggio venga racchiuso all interno di un contenitore sicuro, che è la firma digitale. Grazie ad essa si è sicuri dell identità del mittente e si può sapere se il messaggio è stato modificato dopo l apposizione della firma. La firma digitale calcola il fingerprint del messaggio usando una funzione hash e cripta solo il fingerprint invece che tutto il messaggio, risultando semplice e veloce. L algoritmo di crittografia a chiave pubblica è limitato al solo fingerprint. Nella pratica il mittente ha una smart card rilasciata da un ente certificatore che accerta la sua identità, e un codice segreto (PIN). Quando si firma un documento, il file viene incapsulato e il risultato è un nuovo file con estensione.p7m. Gli enti di certificazione forniscono programmi online per verificare l identità del firmatario, permettendo di aprire il file.p7m e leggere il contenuto interno (il messaggio). Quando Alice vuole mandare a Bob un messaggio autenticato e integro, calcola il fingerprint del messaggio, lo cripta con la sua chiave privata (il PIN della smart card) e lo accoda in fondo al messaggio in chiaro, aggiungendo in fondo anche il certificato digitale del firmatario. Bob deve solo utilizzare la chiave pubblica di Alice per decrittare la firma e quindi autenticare il mittente. Bob ricalcola il fingerprint del messaggio che deve corrispondere a quello inviato altrimenti il messaggio è stato alterato. Per poter generare una firma digitale sono necessari: Un dispositivo per la generazione delle firme (smartcard o Token USB); Un lettore di smartcard (nel caso in cui non si utilizzi un Token USB); Un sw in grado di interagire con il dispositivo per la generazione delle firme digitali. 22

23 23

24 2.13. CERTIFICATO DIGITALE Come essere certi che la chiave pubblica di un certo mittente sia proprio la sua? Occorre certificare l identità del mittente, attivando una procedura sicura per la diffusione della chiave pubblica: la chiave viene racchiusa all interno di un certificato digitale che contiene anche le informazioni sul mittente. Questo certificato deve essere validato da un ente certificatore (CA Certification Authority) che garantisce l identità del proprietario del certificato firmandone le chiavi pubblica e privata con la propria chiave privata. In questo modo ne rende impossibile la manomissione. Il Certificato Digitale è un documento contenuto nella smartcard del titolare e firmato digitalmente dal certificatore. I formati più diffusi sono: PGP/GPG e X.509. Per verificare che il certificato non sia stato sospeso o revocato è necessario l accesso ad Internet perché il sw di verifica possa controllare. In Italia i certificatori sono accreditati presso l Ente Nazionale per la digitalizzazione della Pubblica Amministrazione ed iscritti in un apposito elenco sul sito Alcuni dei Certificatori espletano questa attività esclusivamente per gruppi chiusi di utenti (Stato Maggiore della Difesa, Consiglio Nazionale Forense, Consiglio Nazionale del Notariato ). Il Certificato ha una validità da uno a tre anni che dipende dal Certificatore e deve essere rinnovato periodicamente PEC Posta Elettronica Certificata. E un tipo di che ha lo stesso valore legale di una raccomandata con ricevuta di ritorno. Quando si invia una mail con la PEC ci viene fornita una ricevuta dell avvenuta spedizione e quando il messaggio giunge al destinatario un ulteriore ricevuta di avvenuta consegna. Il modo più semplice per garantire la riservatezza è quello di utilizzare un algoritmo di cifratura a chiave simmetrica come DES o AES. Il metodo si rivela sicuro se si ha Ia certezza che solo mittente e destinatario conoscano la chiave simmetrica altrimenti è conveniente utilizzare la crittografia a chiave pubblica che presenta però problemi di onerosità dai punto di vista computazionale tipici di RSA, algoritmo cento volte più lento di DES. In alternativa può essere utilizzato un algoritmo di cifratura del messaggio di posta a chiave simmetrica con una cosiddetta chiave di sessione ovvero una chiave utilizzata solo per un'unica spedizione e che verrà cifrata dal mittente con RSA prima che sia inviata insieme ai messaggio cifrato con DES. Quando l'utente A vuole inviare un messaggio all'utente B: genera una chiave di sessione; con essa cifra il messaggio da spedire utilizzando un algoritmo a chiave simmetrica come DES; cifra la chiave di sessione con un algoritmo a chiave asimmetrica, come RSA, utilizzando la chiave pubblica di B; spedisce a B, in un'unica busta elettronica, il messaggio cifrato con DES e la chiave simmetrica cifrata con RSA. Quando l'utente B riceve la busta: ricostruisce la chiave di sessione decifrandola con RSA e con la propria chiave privata; utilizza la chiave di sessione per decifrare il messaggio cifrato da A con DES. Il vantaggio di questa tecnica consiste nel cifrare con RSA, molto oneroso, solo la chiave di sessione e di cifrare invece l'intero messaggio con DES, molto veloce. Inoltre in questo modo viene risolto il problema della distribuzione della chiave simmetrica di sessione con la garanzia che resti nota solo al mittente e al destinatario. La procedura sopra descritta non è però sufficiente a garantire anche l'autenticazione e l integrità del messaggio. Qualora si voglia che siano verificate anche queste due ultime proprietà, occorre prevedere meccanismi tipici della firma digitale con hash crittografico. Quando l'utente A vuole inviare un messaggio all'utente B: genera una chiave di sessione; con essa cifra il messaggio da spedire utilizzando un algoritmo a chiave simmetrica come DES; cifra la chiave di sessione con un algoritmo a chiave asimmetrica, come RSA, utilizzando la chiave pubblica di B; applica un algoritmo hash (ad esempio SHA-1) al messaggio producendo un digest; 24

25 cifra con RSA il digest ottenuto con la propria chiave privata per creare la sua firma digitale; predispone e spedisce la busta elettronica contenente: 1. il messaggio cifrato con chiave simmetrica di sessione, 2. la chiave di sessione cifrata con chiave pubblica di B e algoritmo a chiave asimmetrica, come RSA, 3. la propria firma digitale contenente il digest cifrato con la propria chiave privata e algoritmo a chiave asimmetrica. Quando l'utente B riceve la busta: ricostruisce la chiave di sessione decifrandola con RSA e con la propria chiave privata; utilizza la chiave di sessione per decifrare il messaggio cifrato da A con DES; applica un algoritmo hash (ad esempio SHA-1) al messaggio appena decifrato producendo un digest; decifra con RSA e la chiave pubblica di A il digest ricevuto nella busta; confronta il digest ricevuto con quello ricalcolato; se sono uguali è certo che il mittente sia proprio A (autenticità) e che il messaggio non è stato alterato dopo la spedizione (integrità). Resta il problema della distribuzione delle chiavi pubbliche; quella di A utilizzata da B per verificare la firma digitale e quella di B utilizzata da A per cifrare la chiave di sessione. Per questo si ricorre all Autorità di Certificazione. 25

26 26

27 2.15. TLS La maggior parte delle spie o hacker ha poco interesse nei messaggi che la gente ordinaria si scambia, con una notevole eccezione: il numero delle loro carte di credito. Il crittosistema alla base della trasmissione di un frammento d'informazione così delicato è conosciuto come TLS (Transport Layer Security) e fu sviluppato dall'impresa di software Netscape nel 1994 e adottato come standard, due anni dopo. Il protocollo TLS combina chiave pubblica e simmetrica in un processo abbastanza complesso che viene riassunto di seguito. Innanzitutto, il browser di Internet dell'acquirente controlla che il venditore online disponga di un certificato di chiave pubblica valido. In tal caso, impiega questa chiave pubblica per criptare una seconda chiave, questa volta simmetrica, che inoltra al venditore. Questi utilizza la sua chiave privata per decodificare il messaggio e trovare la chiave simmetrica, che sarà usata per cifrare tutto il processo di scambio d'informazioni. Di conseguenza, per trovare il numero di carta di credito in una transazione online qualsiasi, una spia dovrà penetrare non uno, bensì due crittosistemi. 27

28 3. MATEMATICA UTILE 3.1. NUMERI PRIMI Numeri maggiori di uno e divisibili SOLO per 1 e per se stessi. Qualsiasi numero naturale >1 può essere sempre rappresentato come un prodotto di potenze di numeri primi e questa rappresentazione (fattorizzazione) è unica. Gli unici due numeri primi consecutivi sono 2 e 3. I numeri primi dispari consecutivi, cioè quelli che si trovano ad una distanza numerica di due (es: 17 e 19) sono detti numeri primi gemelli NUMERI PRIMI DI MERSENNE Un numero primo è un primo di Mersenne se, sommandogli 1, il risultato è una potenza di due. Esempio: 7 è un primo di Mersenne (7+1=2 3 ). I primi otto primi di Mersenne sono: 3, 7, 31, 127, 8.191, , , Attualmente se ne conoscono una quarantina NUMERI PRIMI DI FERMAT Un numero primo è un primo di Fermat se è della forma: n F dove n è un numero naturale. n Si conoscono solo cinque numeri di Fermat: 3 (n=0), 5 (n=1), 17 (n=2), 257 (n=3), (n=4) ARITMETICA MODULARE Si basa sul concetto di congruenza modulo n. Dati tre interi a, b, n con n 0, a e b sono congruenti modulo n se la loro differenza a-b è un multiplo di n e si scrive a = b mod n oppure a mod n = b Cioè a e b sono congruenti modulo n se hanno lo stesso resto nella divisone per n. Es: 38 = 14 mod 12 Perché il resto di 38/12 è 2 e anche quello di 14/ PICCOLO TEOREMA DI FERMAT Se p è un numero primo, allora per qualunque intero a avremo che a p = a mod p 3.6. IDENTITA DI BEZOUT Se a e b sono numeri interi positivi e MCD(a,b)=k allora esistono due numeri interi p e q che verificano pa + qb = k. Nel caso particolare in cui MCD(a,b)=1 otteniamo che esistono due numeri interi p e q tali che pa + qb = 1. Lavorando in modulo n: Se MCD(a,n)=1, esistono p e q interi tali che pa + qn = 1. Ma in modulo n, qn=0 quindi pa=1, cioè l inverso di a mod n esiste ed è p. 28

29 3.7. FUNZIONE φ DI EULERO Dal ragionamento precedente, il numero di elementi con inverso in modulo n è il numero di naturali a minori di n che verificano MCD(a,n)=1. Tale insieme di numeri è conosciuto come funzione di Eulero e si indica φ(n). La funzione di Eulero restituisce il numero di elementi minori di n che sono primi con n (il numero di interi che hanno MCD = 1 con n). Se n è un numero primo, il MCD(a,n)=1 per ogni valore di a e quindi qualunque valore di a avrà un inverso modulo n, perciò φ(n)=n-1. Se n=pq con p e q numeri primi, allora φ(n)=(p-1)(q-1). Per il piccolo Teorema di Fermat si sa che, se a è un intero >0 e p un numero primo, avremo la relazione a p = a mod p che nell aritmetica modulare equivale a a p-1 = 1 mod p. Dai risultati precedenti possiamo dire, se MCD(a,n)=1; a φ (n) = 1 mod n 29

30 APPENDICE 1: ALGORITMO IDEA 30

31 31

32 32

33 33

34 34

35 35

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

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

Dettagli

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

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

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07

PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 PROGETTO LAUREE SCIENTIFICHE -MATEMATICA 2006/2007 Modelli Matematici per la Società Incontro del 15.02.07 CODICI MONOALFABETICI E ANALISI DELLE FREQUENZE (organizzata da Francesca Visentin) Riprendiamo

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

! 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

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

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

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

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

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

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

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

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

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

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

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

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

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Le equazioni Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Definizione e caratteristiche Chiamiamo equazione l uguaglianza tra due espressioni algebriche,

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

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

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

Dettagli

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

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

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

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

Dettagli

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

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti

da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti da 2 a 5 giocatori, dai 10 anni in su, durata 30 minuti OBIETTIVO Il vincitore è colui che, dopo due round di gioco, delle sue 11 ordinazioni, ne ha consegnate il maggior numero. CONTENUTO DELLA SCATOLA

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

Introduzione alla crittografia con OpenPGP

Introduzione alla crittografia con OpenPGP Introduzione alla crittografia con OpenPGP D avide Cerri dav ide@ linux.it Crittografia Per proteggere le comunicazioni su Internet si utilizza la crittografia. La crittografia è la scienza che si occupa

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

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

Probabilità discreta

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

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

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

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

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

Forze come grandezze vettoriali

Forze come grandezze vettoriali Forze come grandezze vettoriali L. Paolucci 23 novembre 2010 Sommario Esercizi e problemi risolti. Per la classe prima. Anno Scolastico 2010/11 Parte 1 / versione 2 Si ricordi che la risultante di due

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

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

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210 Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;

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

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica.

MAPPE DI KARNAUGH. Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. MAPPE DI KARNAUGH 1. Generalità Nei capitoli precedenti si è visto che è possibile associare un circuito elettronico o elettrico ad una funzione logica. E ovvio che più semplice è la funzione e più semplice

Dettagli

USO DI EXCEL CLASSE PRIMAI

USO DI EXCEL CLASSE PRIMAI USO DI EXCEL CLASSE PRIMAI In queste lezioni impareremo ad usare i fogli di calcolo EXCEL per l elaborazione statistica dei dati, per esempio, di un esperienza di laboratorio. Verrà nel seguito spiegato:

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

Esercizi su. Funzioni

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

Dettagli

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

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0. EQUAZIONI E DISEQUAZIONI Le uguaglianze fra espressioni numeriche si chiamano equazioni. Cercare le soluzioni dell equazione vuol dire cercare quelle combinazioni delle lettere che vi compaiono che la

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

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

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

Dettagli

Firma digitale Definizione

Firma digitale Definizione FIRMA DIGITALE Firma digitale Definizione La definizione di firma digitale è contenuta nel Dlgs. Del 4/04/2006 n.159 che integra il Codice dell amministrazione digitale in vigore dal 1/01/2006. Firma digitale

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

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

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

Dettagli

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S Teoria delle code Sistemi stazionari: M/M/1 M/M/1/K M/M/S Fabio Giammarinaro 04/03/2008 Sommario INTRODUZIONE... 3 Formule generali di e... 3 Leggi di Little... 3 Cosa cerchiamo... 3 Legame tra N e le

Dettagli

Corso di Laurea in Scienze della Formazione Primaria Università di Genova MATEMATICA Il

Corso di Laurea in Scienze della Formazione Primaria Università di Genova MATEMATICA Il Lezione 5:10 Marzo 2003 SPAZIO E GEOMETRIA VERBALE (a cura di Elisabetta Contardo e Elisabetta Pronsati) Esercitazione su F5.1 P: sarebbe ottimale a livello di scuola dell obbligo, fornire dei concetti

Dettagli

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006

IGiochidiArchimede-SoluzioniBiennio 22 novembre 2006 PROGETTO OLIMPII I MTEMTI U.M.I. UNIONE MTEMTI ITLIN SUOL NORMLE SUPERIORE IGiochidirchimede-Soluzioniiennio novembre 006 Griglia delle risposte corrette Problema Risposta corretta E 4 5 6 7 8 9 E 0 Problema

Dettagli

lettera raccomandata. Ecco alcune parole ed espressioni che possono aiutarti a capire meglio il testo.

lettera raccomandata. Ecco alcune parole ed espressioni che possono aiutarti a capire meglio il testo. Unità 12 Inviare una raccomandata CHIAVI In questa unità imparerai: a comprendere testi che danno informazioni su come inviare una raccomandata parole relative alle spedizioni postali e all invio di una

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

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

Alla scoperta della nuova interfaccia di Office 2010

Alla scoperta della nuova interfaccia di Office 2010 Alla scoperta della nuova interfaccia di Office 2010 Una delle novità più eclatanti della versione 2007 era la nuova interfaccia con la barra multifunzione. Office 2010 mantiene questa filosofia di interfaccia

Dettagli

Matematica e giochi di gruppo

Matematica e giochi di gruppo Matematica e giochi di gruppo Possiamo riempire di contenuti matematici situazioni di piccola sfida personale, situazioni di giochi di società. Di seguito proponiamo attività che affrontano i seguenti

Dettagli

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA Biblioteca di Cervia NOZIONI BASE DI INFORMATICA NOZIONI DI INFORMATICA Il PC è composto solitamente di tre parti principali: - Il Case, ovvero il contenitore del cuore del computer, da qui si accende

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico

un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico protocolli un protocollo è costituito da una serie di passi (step) e coinvolge due o più persone (parti, entità) allo scopo di svolgere un incarico proprietà ogni persona coinvolta deve conoscere il protocollo

Dettagli

risulta (x) = 1 se x < 0.

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

Dettagli

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO

Vendere online. Andrea Marin. Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO Andrea Marin Università Ca Foscari Venezia SVILUPPO INTERCULTURALE DEI SISTEMI TURISTICI SISTEMI INFORMATIVI PER IL TURISMO a.a. 2013/2014 Section 1 Introduzione Parliamo di acquisti online quando a seguito

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

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

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che: Teoria dei Giochi, Trento, 2004/05 c Fioravante Patrone 1 Teoria dei Giochi Corso di laurea specialistica: Decisioni economiche, impresa e responsabilità sociale, A.A. 2004/05 Soluzioni degli esercizi

Dettagli

DATABASE. nozioni di base

DATABASE. nozioni di base DATABASE nozioni di base Un database è una raccolta di informazioni organizzata in modo da poter essere facilmente accessibile per consultazione, modifiche e aggiornamenti. All'inizio della storia dei

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

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000

lo 2 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Capittol lo 2 Visualizzazione 2-1 - PERSONALIZZARE LA FINESTRA DI WORD 2000 Nel primo capitolo sono state analizzate le diverse componenti della finestra di Word 2000: barra del titolo, barra dei menu,

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

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

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

informazioni che si può leggere bene, chiaro con caratteri di scrittura simile a quelli usati nella stampa, ma scritti a mano chi riceve una lettera

informazioni che si può leggere bene, chiaro con caratteri di scrittura simile a quelli usati nella stampa, ma scritti a mano chi riceve una lettera Unità 12 Inviare una raccomandata In questa unità imparerai: a comprendere testi che danno informazioni su come inviare una raccomandata parole relative alle spedizioni postali e all invio di una raccomandata

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Capitolo 3: Cenni di strategia

Capitolo 3: Cenni di strategia Capitolo 3: Cenni di strategia Le "Mobilità" L obiettivo fondamentale del gioco è, naturalmente, catturare semi, ma l obiettivo strategico più ampio è di guadagnare il controllo dei semi in modo da poter

Dettagli

II.f. Altre attività sull euro

II.f. Altre attività sull euro Altre attività sull euro II.f È consigliabile costruire modelli in carta o cartoncino di monete e banconote, e farli usare ai bambini in varie attività di classe fin dal primo o al più dal secondo anno.

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

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

Convertitori numerici in Excel

Convertitori numerici in Excel ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA Convertitori numerici in Excel Prof. G. Ciaschetti Come attività di laboratorio, vogliamo realizzare dei convertitori numerici con Microsoft Excel

Dettagli

DOCUMENTO ELETTRONICO E FIRMA DIGITALE

DOCUMENTO ELETTRONICO E FIRMA DIGITALE DOCUMENTO ELETTRONICO E FIRMA DIGITALE CHE COSA È LA CRITTOGRAFIA LA CRITTOLOGIA È SCIENZA CHE STUDIA LE SCRITTURE SEGRETE 2 CRITTOGRAFIA STUDIA I SISTEMI DI PROTEZIONE DEI MESSAGGI CRITTOANALISI STUDIA

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

Operatori logici e porte logiche

Operatori logici e porte logiche Operatori logici e porte logiche Operatori unari.......................................... 730 Connettivo AND........................................ 730 Connettivo OR..........................................

Dettagli

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013

Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 Operazioni Aritmetiche e Codici in Binario Giuseppe Talarico 23/01/2013 In questo documento vengono illustrate brevemente le operazioni aritmetiche salienti e quelle logiche ad esse strettamente collegate.

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

www.filoweb.it STAMPA UNIONE DI WORD

www.filoweb.it STAMPA UNIONE DI WORD STAMPA UNIONE DI WORD Molte volte abbiamo bisogno di stampare più volte lo stesso documento cambiando solo alcuni dati. Potremmo farlo manualmente e perdere un sacco di tempo, oppure possiamo ricorrere

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

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

Dettagli

UNIVERSITÀ DEGLI STUDI DI TERAMO

UNIVERSITÀ DEGLI STUDI DI TERAMO UNIVERSITÀ DEGLI STUDI DI TERAMO CORSO DI LAUREA IN ECONOMIA BANCARIA FINANZIARIA ED ASSICURATIVA (Classe 7) Corso di Matematica per l Economia (Prof. F. Eugeni) TEST DI INGRESSO Teramo, ottobre 00 SEZIONE

Dettagli

Traduzione e adattamento a cura di Gylas per Giochi Rari

Traduzione e adattamento a cura di Gylas per Giochi Rari Traduzione e adattamento a cura di Gylas per Giochi Rari Versione 1.0 Luglio 2001 NOTA. La presente traduzione non sostituisce in alcun modo il regolamento originale del gioco; il presente documento è

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore. Capitolo II La forma del valore 7. La duplice forma in cui si presenta la merce: naturale e di valore. I beni nascono come valori d uso: nel loro divenire merci acquisiscono anche un valore (di scambio).

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

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

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

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

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

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli