La matematica dell orologio



Documenti analoghi
4 3 4 = 4 x x x 10 0 aaa

PRIMAVERA IN BICOCCA

Un po di teoria dei numeri

Introduzione alla Crittografia

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

Alessandro Pellegrini

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

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Dimensione di uno Spazio vettoriale

I sistemi di numerazione

Applicazioni lineari

SISTEMI DI NUMERAZIONE E CODICI

Dispense di Informatica per l ITG Valadier

Numeri naturali numeri naturali minore maggiore Operazioni con numeri naturali

11) convenzioni sulla rappresentazione grafica delle soluzioni

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

SOMMARIO I radicali pag I radicali aritmetici pag Moltiplicazione e divisione fra radicali aritmetici pag.

PROPRIETA' ASSOCIATIVA La somma di tre o più addendi non cambia se al posto di alcuni di essi si sostituisce la loro somma.

Introduzione alla crittografia. Il crittosistema RSA e la sua sicurezza

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

DOMINI A FATTORIZZAZIONE UNICA

Informatica. Rappresentazione dei numeri Numerazione binaria

Matematica generale CTF

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

I SISTEMI DI NUMERAZIONE

Sistemi di Numerazione

Convertitori numerici in Excel

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

= 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

Cifratura a chiave pubblica Sicurezza nelle reti di TLC - Prof. Marco Listanti - A.A. 2008/2009

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

Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Il simbolo. è è = = = In simboli: Sia un numero naturale diverso da zero, il radicale. Il radicale. esiste. esiste 0 Il radicale

24 : 3 = 8 con resto 0 26 : 4 = 6 con resto 2

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

1. PRIME PROPRIETÀ 2

Parte 2. Determinante e matrice inversa

RETI DI CALCOLATORI. Crittografia. La crittografia

La prof.ssa SANDRA VANNINI svolge da diversi anni. questo percorso didattico sulle ARITMETICHE FINITE.

Soluzione dell esercizio del 2 Febbraio 2004

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

Probabilità discreta

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

LA MOLTIPLICAZIONE IN CLASSE SECONDA

UNIVERSITÀ DEGLI STUDI DI TERAMO

Informazione analogica e digitale

I numeri semiprimi e i numeri RSA. come loro sottoinsieme

SISTEMI DI NUMERAZIONE DECIMALE E BINARIO

Il calcolo letterale per risolvere problemi e per dimostrare

Algoritmi e strutture dati. Codici di Huffman

risulta (x) = 1 se x < 0.

La somma. Esempio: Il prodotto. Esempio:

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Esercitazione Informatica I AA Nicola Paoletti

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

Prodotto libero di gruppi

LEZIONE 23. Esempio Si consideri la matrice (si veda l Esempio ) A =

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

STRUTTURE ALGEBRICHE

COEFFICIENTI BINOMIALI

Matematica in laboratorio

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

Anello commutativo. Un anello è commutativo se il prodotto è commutativo.

Sistema di numerazione binario, operazioni relative e trasformazione da base due a base dieci e viceversa di Luciano Porta

Il principio di induzione e i numeri naturali.

ESEMPIO 1: eseguire il complemento a 10 di 765

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

4. Operazioni elementari per righe e colonne

L anello dei polinomi

Guardiamo ora però la cosa da un altro punto di vista analizzando il seguente grafico a forma di torta. La torta in 5 parti

Forze come grandezze vettoriali

Corso PAS Anno ESEMPIO. Per n = 3, Z 3 contiene 3 elementi:

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

1 Giochi a due, con informazione perfetta e somma zero

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Lezione 9: Cambio di base

ESERCIZI DI PREPARAZIONE E

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

1 Serie di Taylor di una funzione

Esponenziali elogaritmi

la scienza della rappresentazione e della elaborazione dell informazione

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

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

La variabile casuale Binomiale

Le curve ellittiche sono un gioiello della matematica. Sono state studiate per secoli per la loro bellezza e importanza.

Pre Test Matematica

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

Corrispondenze e funzioni

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

4. Operazioni aritmetiche con i numeri binari

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

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

la scienza della rappresentazione e della elaborazione dell informazione

Esercizi su lineare indipendenza e generatori

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

Statistica e biometria. D. Bertacchi. Variabili aleatorie. V.a. discrete e continue. La densità di una v.a. discreta. Esempi.

Marco Tolotti - Corso di Esercitazioni di Matematica 12 Cfu - A.A. 2010/2011 1

Transcript:

La matematica dell orologio Un aritmetica inusuale: I numeri del nostro ambiente sono: 0,1,2,...,11 e corrispondono alle ore di un nostro orologio Le operazioni sono intese in questo modo: 1 somma: a+b è l ora che si ottiene spostando la lancetta dalla posizione a in avanti di b ore; 2 prodotto: a b è l ora che si ottiene sommando a a sé stessa b volte. I risultati nella matematica dell orologio vengono distinti dagli altri mediante l espressione (mod 12)

La matematica dell orologio Un aritmetica inusuale: I numeri del nostro ambiente sono: 0,1,2,...,11 e corrispondono alle ore di un nostro orologio Le operazioni sono intese in questo modo: 1 somma: a+b è l ora che si ottiene spostando la lancetta dalla posizione a in avanti di b ore; 2 prodotto: a b è l ora che si ottiene sommando a a sé stessa b volte. I risultati nella matematica dell orologio vengono distinti dagli altri mediante l espressione (mod 12) Esercizio 1 Calcolare 7 3 (mod 12), 8 4 (mod 12), 10 5 (mod 12)

La matematica dell orologio Un aritmetica inusuale: I numeri del nostro ambiente sono: 0,1,2,...,11 e corrispondono alle ore di un nostro orologio Le operazioni sono intese in questo modo: 1 somma: a+b è l ora che si ottiene spostando la lancetta dalla posizione a in avanti di b ore; 2 prodotto: a b è l ora che si ottiene sommando a a sé stessa b volte. I risultati nella matematica dell orologio vengono distinti dagli altri mediante l espressione (mod 12) Esercizio 1 Calcolare 7 3 (mod 12), 8 4 (mod 12), 10 5 (mod 12) Esercizio 2 Riflettere sul rapporto che c è fra i risultati usuali e i risultati (mod 12).

Problema 1 Provare a dare una definizione matematica di a+b (mod 12) e di a b (mod 12) che non faccia uso dell orologio.

Problema 1 Provare a dare una definizione matematica di a+b (mod 12) e di a b (mod 12) che non faccia uso dell orologio. Quindi: 1 a+b (mod 12) è il resto della divisione di a+b per 12; 2 a b (mod 12) è il resto della divisione di a b per 12.

Problema 1 Provare a dare una definizione matematica di a+b (mod 12) e di a b (mod 12) che non faccia uso dell orologio. Quindi: 1 a+b (mod 12) è il resto della divisione di a+b per 12; 2 a b (mod 12) è il resto della divisione di a b per 12. Gara 1 Calcolare 7 15 (mod 12) nel minor tempo possibile senza calcolatrice

Problema 1 Provare a dare una definizione matematica di a+b (mod 12) e di a b (mod 12) che non faccia uso dell orologio. Quindi: 1 a+b (mod 12) è il resto della divisione di a+b per 12; 2 a b (mod 12) è il resto della divisione di a b per 12. Gara 1 Calcolare 7 15 (mod 12) nel minor tempo possibile senza calcolatrice Idea chiave: elevare a potenza nella matematica dell orologio può essere un operazione molto più veloce di quello che si potrebbe immaginare

Generalizziamo: Aritmetica modulare Non c è niente di speciale nel numero 12. Sostituiamolo con un numero intero n qualsiasi, purchè maggiore di 1. I numeri del nostro ambiente sono: 0,1,2,...,n 1 Le operazioni sono intese in questo modo: 1 a+b (mod n) è il resto della divisione di a+b per n; 2 a b (mod n) è il resto della divisione di a b per n.

Generalizziamo: Aritmetica modulare Non c è niente di speciale nel numero 12. Sostituiamolo con un numero intero n qualsiasi, purchè maggiore di 1. I numeri del nostro ambiente sono: 0,1,2,...,n 1 Le operazioni sono intese in questo modo: 1 a+b (mod n) è il resto della divisione di a+b per n; 2 a b (mod n) è il resto della divisione di a b per n. Questo insieme numerico viene indicato con il simbolo Z n = {0,1,...,n 2,n 1}

Generalizziamo: Aritmetica modulare Non c è niente di speciale nel numero 12. Sostituiamolo con un numero intero n qualsiasi, purchè maggiore di 1. I numeri del nostro ambiente sono: 0,1,2,...,n 1 Le operazioni sono intese in questo modo: 1 a+b (mod n) è il resto della divisione di a+b per n; 2 a b (mod n) è il resto della divisione di a b per n. Questo insieme numerico viene indicato con il simbolo Z n = {0,1,...,n 2,n 1} Quando è chiaro che ci stiamo riferendo ad operazioni in Z n possiamo omettere l espressione (mod n).

Generalizziamo: Aritmetica modulare Non c è niente di speciale nel numero 12. Sostituiamolo con un numero intero n qualsiasi, purchè maggiore di 1. I numeri del nostro ambiente sono: 0,1,2,...,n 1 Le operazioni sono intese in questo modo: 1 a+b (mod n) è il resto della divisione di a+b per n; 2 a b (mod n) è il resto della divisione di a b per n. Questo insieme numerico viene indicato con il simbolo Z n = {0,1,...,n 2,n 1} Quando è chiaro che ci stiamo riferendo ad operazioni in Z n possiamo omettere l espressione (mod n). Esercizio 3 Calcolare: 21+23 (mod 14), 21 23 (mod 19), 22 10 (mod 20), senza usare la calcolatrice

Esempio crittografico: n = 21 Gli elementi di Z 21 sono identificati con le lettere dell alfabeto A 0 B 1 C 2 D 3 E 4 F 5 G 6 H 7 I 8 L 9 M 10 N 11 O 12 P 13 Q 14 R 15 S 16 T 17 U 18 V 19 Z 20

Il cifrario di Cesare: Testi in chiaro: Z 21 Testi cifrati: Z 21 Chiavi: Z 21 Codifica: e k (x) = x +k (mod 21)

Il cifrario di Cesare: Testi in chiaro: Z 21 Testi cifrati: Z 21 Chiavi: Z 21 Codifica: e k (x) = x +k (mod 21) Una possibile generalizzazione: Testi in chiaro: Z 21 Testi cifrati: Z 21 Chiavi: Z 21 Z 21 Codifica: e a,b (x) = a x +b (mod 21)

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti.

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì?

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì? Quale è secondo voi la motivazione di natura matematica?

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì? Quale è secondo voi la motivazione di natura matematica? a x 1 = a x 2 per qualche x 1 x 2

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì? Quale è secondo voi la motivazione di natura matematica? a x 1 = a x 2 per qualche x 1 x 2 Quale congettura di carattere generale vi sentireste di formulare al riguardo? Come si distinguono le chiavi valide da quelle non valide (se necessario, provate anche altre chiavi!)

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì? Quale è secondo voi la motivazione di natura matematica? a x 1 = a x 2 per qualche x 1 x 2 Quale congettura di carattere generale vi sentireste di formulare al riguardo? Come si distinguono le chiavi valide da quelle non valide (se necessario, provate anche altre chiavi!) Come provereste a dimostrare tale congettura?

Esperimento 1 A gruppi di 4, calcolate le funzioni di codifica relative alle seguenti chiavi: (3,0), (3,1), (2,0), (2,1). Discutere i risultati ottenuti. Perchè le chiavi con a = 3 non sono adeguate mentre quelle con a = 2 sì? Quale è secondo voi la motivazione di natura matematica? a x 1 = a x 2 per qualche x 1 x 2 Quale congettura di carattere generale vi sentireste di formulare al riguardo? Come si distinguono le chiavi valide da quelle non valide (se necessario, provate anche altre chiavi!) Come provereste a dimostrare tale congettura? deve esistere x con ax = 1 (mod 21) ax = c 21 + 1. Ciò è implica MCD(a,21) = 1. Viceversa, se MCD(a,21) = 1 allora ax 1 = ax 2 non può mai verificarsi dato che 21 divide a(x 1 x 2 )

Cifrario affine Testi in chiaro: Z 21 Testi cifrati: Z 21 Chiavi: A Z 21 dove A = {a Z 21 MCD(a,21) = 1} = {1,2,4,5,8,10,11,13,16,17,19,20} Codifica: e a,b (x) = a x +b (mod 21)

Cifrario affine Testi in chiaro: Z 21 Testi cifrati: Z 21 Chiavi: A Z 21 dove A = {a Z 21 MCD(a,21) = 1} = {1,2,4,5,8,10,11,13,16,17,19,20} Codifica: e a,b (x) = a x +b (mod 21) Gara 2 Decodificare il seguente messaggio, sapendo che è stato cifrato con un cifrario affine: lo qtpobzh avb pmt eohvdo ctznvt od rmtcgh ponbvgoztdgh ntv sb nvhccozb stuohdt link verifica: www.dmi.unipg.it/giuliet/mip.txt

La divisione in Z n. Abbiamo visto che in Z 21 vale la seguente proprietà: MCD(a,21) = 1 esiste b in Z 21 con ab = 1 (mod 21)

La divisione in Z n. Abbiamo visto che in Z 21 vale la seguente proprietà: MCD(a,21) = 1 esiste b in Z 21 con ab = 1 (mod 21) È facile dimostrare che la stessa proprietà vale in Z n : MCD(a,n) = 1 esiste b in Z n con ab = 1 (mod n)

La divisione in Z n. Abbiamo visto che in Z 21 vale la seguente proprietà: MCD(a,21) = 1 esiste b in Z 21 con ab = 1 (mod 21) È facile dimostrare che la stessa proprietà vale in Z n : MCD(a,n) = 1 esiste b in Z n con ab = 1 (mod n) Nell ambiente numerico Z n la divisione non è sempre possibile: esiste se e solo se MCD(a,n) = 1 1 a

La divisione in Z n. Abbiamo visto che in Z 21 vale la seguente proprietà: MCD(a,21) = 1 esiste b in Z 21 con ab = 1 (mod 21) È facile dimostrare che la stessa proprietà vale in Z n : MCD(a,n) = 1 esiste b in Z n con ab = 1 (mod n) Nell ambiente numerico Z n la divisione non è sempre possibile: esiste se e solo se MCD(a,n) = 1 1 a Problema: come calcolare 1/a?

La divisione in Z n. Abbiamo visto che in Z 21 vale la seguente proprietà: MCD(a,21) = 1 esiste b in Z 21 con ab = 1 (mod 21) È facile dimostrare che la stessa proprietà vale in Z n : MCD(a,n) = 1 esiste b in Z n con ab = 1 (mod n) Nell ambiente numerico Z n la divisione non è sempre possibile: esiste se e solo se MCD(a,n) = 1 1 a Problema: come calcolare 1/a? Esperimento 2 Calcolare (se possibile): 1 2 in Z 23 1 4 in Z 9 1 2 in Z 22 1 in Z 22

Un metodo più veloce: l algoritmo euclideo n dividendo; a divisore divisione euclidea: n = qa+r con 0 r a 1 poniamo q := q 0 e r := r 1

Un metodo più veloce: l algoritmo euclideo n dividendo; a divisore divisione euclidea: n = qa+r con 0 r a 1 poniamo q := q 0 e r := r 1 Passi successivi: a = q 1 r 1 +r 2 r 1 = q 2 r 2 +r 3 r 2 = q 3 r 3 +r 4... r i 1 = q i r i +r i+1...

Un metodo più veloce: l algoritmo euclideo n dividendo; a divisore divisione euclidea: n = qa+r con 0 r a 1 poniamo q := q 0 e r := r 1 Passi successivi: a = q 1 r 1 +r 2 r 1 = q 2 r 2 +r 3 r 2 = q 3 r 3 +r 4... r i 1 = q i r i +r i+1... Ad un certo punto il resto diventa uguale a 0. L ultimo resto non nullo è il Massimo Comun Divisore di n e a.

Un metodo più veloce: l algoritmo euclideo n dividendo; a divisore divisione euclidea: n = qa+r con 0 r a 1 poniamo q := q 0 e r := r 1 Passi successivi: a = q 1 r 1 +r 2 r 1 = q 2 r 2 +r 3 r 2 = q 3 r 3 +r 4... r i 1 = q i r i +r i+1... Ad un certo punto il resto diventa uguale a 0. L ultimo resto non nullo è il Massimo Comun Divisore di n e a. Nel caso in cui MCD(n,a) = 1 è facile trovare x,y tali che 1 = nx +ay.

Un metodo più veloce: l algoritmo euclideo n dividendo; a divisore divisione euclidea: n = qa+r con 0 r a 1 poniamo q := q 0 e r := r 1 Passi successivi: a = q 1 r 1 +r 2 r 1 = q 2 r 2 +r 3 r 2 = q 3 r 3 +r 4... r i 1 = q i r i +r i+1... Ad un certo punto il resto diventa uguale a 0. L ultimo resto non nullo è il Massimo Comun Divisore di n e a. Nel caso in cui MCD(n,a) = 1 è facile trovare x,y tali che 1 = nx +ay. Conseguenza: y mod n è proprio 1/a in Z n

Esempio Come trovare l inverso di 12 in Z 53?

Esempio Come trovare l inverso di 12 in Z 53? Algoritmo euclideo 53 = 4 12+5 12 = 2 5+2 5 = 2 2+1 2 = 2 1+0

Esempio Come trovare l inverso di 12 in Z 53? Algoritmo euclideo 53 = 4 12+5 5 = 53 4 12 12 = 2 5+2 2 = 12 2 5 5 = 2 2+1 1 = 5 2 2 2 = 2 1+0 Risalendo le uguaglianze dal basso si scopre che... 1 = 5 2 2 1 = 5 2(12 2 5) 1 = (53 4 12) 2(12 2 (53 4 12)) 1 = 5 53 22 12

Esempio Come trovare l inverso di 12 in Z 53? Algoritmo euclideo 53 = 4 12+5 5 = 53 4 12 12 = 2 5+2 2 = 12 2 5 5 = 2 2+1 1 = 5 2 2 2 = 2 1+0 Risalendo le uguaglianze dal basso si scopre che... 1 = 5 2 2 1 = 5 2(12 2 5) 1 = (53 4 12) 2(12 2 (53 4 12)) 1 = 5 53 22 12 Pertanto 22 12 = 1 (mod 53) 1 = 22 = 31 (mod 53) 12

Esempio Come trovare l inverso di 12 in Z 53? Algoritmo euclideo 53 = 4 12+5 5 = 53 4 12 12 = 2 5+2 2 = 12 2 5 5 = 2 2+1 1 = 5 2 2 2 = 2 1+0 Risalendo le uguaglianze dal basso si scopre che... 1 = 5 2 2 1 = 5 2(12 2 5) 1 = (53 4 12) 2(12 2 (53 4 12)) 1 = 5 53 22 12 Pertanto Gara 3 22 12 = 1 (mod 53) 1 = 22 = 31 (mod 53) 12 Determinare 1/11 in Z 63

L algoritmo euclideo nel linguaggio MAGMA Istruzioni r:=(a mod b); while (r ne 0) do a:=b; b:=r; r:=(a mod b); end while; MCD:=b; MCD;

L algoritmo euclideo nel linguaggio MAGMA Istruzioni con contapassi r:=(a mod b); cont:=1; while (r ne 0) do a:=b; b:=r; r:=(a mod b); cont:=cont+1; end while; MCD:=b; MCD; cont;

Esperimento 3 Calcolare con MAGMA i MCD di coppie di numeri sempre più grandi e il numero di divisioni effettuate. Quanti passi vi aspettavate in teoria? (ordine di grandezza rispetto a b)

Esperimento 3 Calcolare con MAGMA i MCD di coppie di numeri sempre più grandi e il numero di divisioni effettuate. Quanti passi vi aspettavate in teoria? (ordine di grandezza rispetto a b) Quanti passi sono stati necessari in realtà?

Esperimento 3 Calcolare con MAGMA i MCD di coppie di numeri sempre più grandi e il numero di divisioni effettuate. Quanti passi vi aspettavate in teoria? (ordine di grandezza rispetto a b) Quanti passi sono stati necessari in realtà? Quale congettura potreste formulare relativamente a tale numero di passi? (Suggerimento: provare divisori che siano potenze di 2)

Esperimento 3 Calcolare con MAGMA i MCD di coppie di numeri sempre più grandi e il numero di divisioni effettuate. Quanti passi vi aspettavate in teoria? (ordine di grandezza rispetto a b) Quanti passi sono stati necessari in realtà? Quale congettura potreste formulare relativamente a tale numero di passi? (Suggerimento: provare divisori che siano potenze di 2) Come potreste provare tale congettura?

Esperimento 3 Calcolare con MAGMA i MCD di coppie di numeri sempre più grandi e il numero di divisioni effettuate. Quanti passi vi aspettavate in teoria? (ordine di grandezza rispetto a b) Quanti passi sono stati necessari in realtà? Quale congettura potreste formulare relativamente a tale numero di passi? (Suggerimento: provare divisori che siano potenze di 2) Come potreste provare tale congettura? r i 1 r i + r i+1 2r i+1

Confronto con il metodo della scuola media... Esperimento 4 Provate ad usare MAGMA per calcolare il massimo comun divisore di numeri sempre più grandi. Potete usare direttamante il comando GCD(a,b) Sempre con MAGMA, fattorizzate quegli stessi numeri con il comando Factorization(n); Confrontate i tempi di esecuzione.

Confronto con il metodo della scuola media... Esperimento 4 Provate ad usare MAGMA per calcolare il massimo comun divisore di numeri sempre più grandi. Potete usare direttamante il comando GCD(a,b) Sempre con MAGMA, fattorizzate quegli stessi numeri con il comando Factorization(n); Confrontate i tempi di esecuzione. Esempio: a = 1000000000000000000000000000060 3000000000000000000000000001881 b = 10000000000000000000000000000000 00000000000000001231231231234 Confrontare GCD(a,b) con Factorization(a)

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto:

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione:

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Fattorizzazione:

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Fattorizzazione: lenta

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Fattorizzazione: lenta Elevamento a potenza:?

Primo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Fattorizzazione: lenta Elevamento a potenza:? Logaritmo:?

Il vero cifrario di Diffie-Hellman Chiave pubblica: (1) un numero primo p; (2) un elemento di Z p, diciamo A; (3) una potenza di A, diciamo A B (mod p). Chiave privata: l esponente B (compreso fra 1 e p 2). Codifica di un messaggio M Z p : il mittente sceglie un intero casuale compreso fra 1 e p 2, diciamo C e invia, i valori (M (A B ) C,A C ). Decodifica di un messaggio (α,β): M = α/β B.

Il vero cifrario di Diffie-Hellman Chiave pubblica: (1) un numero primo p; (2) un elemento di Z p, diciamo A; (3) una potenza di A, diciamo A B (mod p). Chiave privata: l esponente B (compreso fra 1 e p 2). Codifica di un messaggio M Z p : il mittente sceglie un intero casuale compreso fra 1 e p 2, diciamo C e invia, i valori (M (A B ) C,A C ). Decodifica di un messaggio (α,β): M = α/β B. Gara 4 Divisi in tre squadre, impersonate i ruoli di mittente, opponente e destinatario. Supponiamo che parte della chiave pubblica del destinatario sia p = 29, A = 2. La squadra destinatario sceglie B e comunica a tutta la classe A B (mod p). Misuriamo i tempi in cui: la squadra mittente codifica un messaggio scelto a caso la squadra destinatario decodifica tale messaggio la squadra opponente decodifica tale messaggio

Elevamento a potenza in Z n Sia n un numero di 1024 cifre binarie (circa 308 cifre decimali). Problema: Fissato A in Z n, e B esponente compreso fra 1 e n 1, quante moltiplicazioni in Z n sono necessarie per calcolare A B (mod n)?

Elevamento a potenza in Z n Sia n un numero di 1024 cifre binarie (circa 308 cifre decimali). Problema: Fissato A in Z n, e B esponente compreso fra 1 e n 1, quante moltiplicazioni in Z n sono necessarie per calcolare A B (mod n)? Esperimento 5 Scegliere un numero n con 300 cifre (esempio: 10 300 +1378543) Scegliere due numeri A e B minori di n Provare a calcolare con MAGMA il prodotto A A A (mod n) per B volte

Elevamento a potenza in Z n Sia n un numero di 1024 cifre binarie (circa 308 cifre decimali). Problema: Fissato A in Z n, e B esponente compreso fra 1 e n 1, quante moltiplicazioni in Z n sono necessarie per calcolare A B (mod n)? Esperimento 5 Scegliere un numero n con 300 cifre (esempio: 10 300 +1378543) Scegliere due numeri A e B minori di n Provare a calcolare con MAGMA il prodotto A A A (mod n) per B volte Deve esistere un metodo molto più veloce, altrimenti non potremmo usare Diffie-Hellman!

Elevamento a potenza in Z n Sia n un numero di 1024 cifre binarie (circa 308 cifre decimali). Problema: Fissato A in Z n, e B esponente compreso fra 1 e n 1, quante moltiplicazioni in Z n sono necessarie per calcolare A B (mod n)? Esperimento 5 Scegliere un numero n con 300 cifre (esempio: 10 300 +1378543) Scegliere due numeri A e B minori di n Provare a calcolare con MAGMA il prodotto A A A (mod n) per B volte Deve esistere un metodo molto più veloce, altrimenti non potremmo usare Diffie-Hellman! Tentiamo con il comando Modexp(A,B,n)

Elevamento a potenza in Z n Sia n un numero di 1024 cifre binarie (circa 308 cifre decimali). Problema: Fissato A in Z n, e B esponente compreso fra 1 e n 1, quante moltiplicazioni in Z n sono necessarie per calcolare A B (mod n)? Esperimento 5 Scegliere un numero n con 300 cifre (esempio: 10 300 +1378543) Scegliere due numeri A e B minori di n Provare a calcolare con MAGMA il prodotto A A A (mod n) per B volte Deve esistere un metodo molto più veloce, altrimenti non potremmo usare Diffie-Hellman! Tentiamo con il comando Modexp(A,B,n) Quale potrebbe essere l idea alla base di Modexp?

Square and Multiply Supponiamo di voler calcolare 35 637 (mod 832)

Square and Multiply Supponiamo di voler calcolare 35 637 (mod 832) Sfruttiamo la scrittura di 637 in base 2: 637 = 1001111101 = 512+64+32+16+8+4+1 e quindi 35 637 (mod 832) = 35 512 35 64 35 32 35 16 35 8 35 4 35 1 (mod 832); apparentemente il problema non sembra semplificato.

Square and Multiply Supponiamo di voler calcolare 35 637 (mod 832) Sfruttiamo la scrittura di 637 in base 2: e quindi 637 = 1001111101 = 512+64+32+16+8+4+1 35 637 (mod 832) = 35 512 35 64 35 32 35 16 35 8 35 4 35 1 (mod 832); apparentemente il problema non sembra semplificato. Ma 35 2 = 79 (mod 832) e possiamo proseguire con le potenze di 2 e calcolare 35 4 (mod 832): basta osservare che 35 4 = 35 2 35 2 (mod 832) e quindi 35 4 = 79 2 = 129 (mod 832)

Procedendo con lo stesso sistema si ottengono: 35 2 = 79 (mod 832) 35 4 = 79 2 = 129 (mod 832) 35 8 = 129 2 = 215 (mod 832) 35 16 = 215 2 = 3 (mod 832) 35 32 = 3 2 = 9 (mod 832) 35 64 = 9 2 = 81 (mod 832) 35 128 = 81 2 = 67 (mod 832) 35 256 = 67 2 = 287 (mod 832) 35 512 = 287 2 = 239 (mod 832)

Procedendo con lo stesso sistema si ottengono: 35 2 = 79 (mod 832) 35 4 = 79 2 = 129 (mod 832) 35 8 = 129 2 = 215 (mod 832) 35 16 = 215 2 = 3 (mod 832) 35 32 = 3 2 = 9 (mod 832) 35 64 = 9 2 = 81 (mod 832) 35 128 = 81 2 = 67 (mod 832) 35 256 = 67 2 = 287 (mod 832) 35 512 = 287 2 = 239 (mod 832) Quindi 35 637 (mod 832) = 239 81 9 3 215 129 35 (mod 832). Il risultato finale 35 367 = 121 (mod 832)

Procedendo con lo stesso sistema si ottengono: 35 2 = 79 (mod 832) 35 4 = 79 2 = 129 (mod 832) 35 8 = 129 2 = 215 (mod 832) 35 16 = 215 2 = 3 (mod 832) 35 32 = 3 2 = 9 (mod 832) 35 64 = 9 2 = 81 (mod 832) 35 128 = 81 2 = 67 (mod 832) 35 256 = 67 2 = 287 (mod 832) 35 512 = 287 2 = 239 (mod 832) Quindi 35 637 (mod 832) = 239 81 9 3 215 129 35 (mod 832). Il risultato finale 35 367 = 121 (mod 832) Esercizio 4 Calcolare col metodo square and multiply le seguenti potenze modulo n = 92: 1 7 237 2 24 53

Secondo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Elevamento a potenza: veloce - square and multiply Fattorizzazione: lenta

Secondo Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Elevamento a potenza: veloce - square and multiply Fattorizzazione: lenta Logaritmo:?

Logaritmo in Z n Esperimento 6 Scrivere tutte le potenze di 2 in R con esponente compreso fra 1 e 200 Ripetere lo stesso conteggio modulo p, con p = 557 Discutere i risultati ottenuti

Logaritmo in Z n Esperimento 6 Scrivere tutte le potenze di 2 in R con esponente compreso fra 1 e 200 Ripetere lo stesso conteggio modulo p, con p = 557 Discutere i risultati ottenuti Conseguenza: Non esistono algoritmi veloci per il calcolo di logaritmi in aritmetica modulare

Riepilogo Nell aritmetica modulare: Somma e prodotto: veloci Divisione: veloce - algoritmo euclideo Elevamento a potenza: veloce - square and multiply Logaritmo: lento Fattorizzazione: lenta

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n?

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero Se n è un numero primo, quanto vale φ(n)?

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero Se n è un numero primo, quanto vale φ(n)? n-1 Il caso più interessante per noi è quello in cui n = pq, dove p e q sono numeri primi.

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero Se n è un numero primo, quanto vale φ(n)? n-1 Il caso più interessante per noi è quello in cui n = pq, dove p e q sono numeri primi. Esperimento 7 Determinare φ(n) per n = 6,10,15,21,...

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero Se n è un numero primo, quanto vale φ(n)? n-1 Il caso più interessante per noi è quello in cui n = pq, dove p e q sono numeri primi. Esperimento 7 Determinare φ(n) per n = 6,10,15,21,... Congetturare una regola generale per φ(n) nel caso n = pq con p,q primi.

La funzione toziente di Eulero Problema: Quanti sono gli elementi invertibili in Z n? Il numero di questi elementi si indica con φ(n). La funzione φ si chiama funzione toziente di Eulero Se n è un numero primo, quanto vale φ(n)? n-1 Il caso più interessante per noi è quello in cui n = pq, dove p e q sono numeri primi. Esperimento 7 Determinare φ(n) per n = 6,10,15,21,... Congetturare una regola generale per φ(n) nel caso n = pq con p,q primi. Provare a dimostrare tale congettura.

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ;

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ;

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ; Scrivere le potenze di tutti gli elementi non nulli di Z 11 ;

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ; Scrivere le potenze di tutti gli elementi non nulli di Z 11 ; Osservare i risultati

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ; Scrivere le potenze di tutti gli elementi non nulli di Z 11 ; Osservare i risultati Formulare una congettura generale sul valore di a p (mod p)

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ; Scrivere le potenze di tutti gli elementi non nulli di Z 11 ; Osservare i risultati Formulare una congettura generale sul valore di a p (mod p) Provare a dimostrare tale congettura

Il piccolo Teorema di Fermat Esperimento 8 Scrivere le potenze di tutti gli elementi non nulli di Z 5 ; Scrivere le potenze di tutti gli elementi non nulli di Z 7 ; Scrivere le potenze di tutti gli elementi non nulli di Z 11 ; Osservare i risultati Formulare una congettura generale sul valore di a p (mod p) Provare a dimostrare tale congettura Teorema 1 (Piccolo teorema di Fermat) Sia p un numero primo e sia a un intero qualsiasi. Allora a p = a (mod p)

Se a = 0 (mod p), allora a p = a = 0 (mod p)

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p)

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?)

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?) Questo vuol dire che a j i = 1 (mod p) (perché?)

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?) Questo vuol dire che a j i = 1 (mod p) (perché?) Sia s p 1 il minimo intero positivo tale che a s = 1 (mod p)

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?) Questo vuol dire che a j i = 1 (mod p) (perché?) Sia s p 1 il minimo intero positivo tale che a s = 1 (mod p) Le potenze distinte di a sono 1,a,a 2,...,a s 1. Dopodichè, dato che a s = 1, si ripetono. Per ogni b Z p, gli elementi b,ba,ba 2,...,ba s 1 sono in numero di s

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?) Questo vuol dire che a j i = 1 (mod p) (perché?) Sia s p 1 il minimo intero positivo tale che a s = 1 (mod p) Le potenze distinte di a sono 1,a,a 2,...,a s 1. Dopodichè, dato che a s = 1, si ripetono. Per ogni b Z p, gli elementi b,ba,ba 2,...,ba s 1 sono in numero di s L insieme degli elementi non nulli di Z p è ripartito in tali gruppi di s elementi

Se a = 0 (mod p), allora a p = a = 0 (mod p) Se a 0 (mod p), allora possiamo consideriamo le potenze di a = a 0,a 1,a 2,..., tutte calcolate (mod p) Per qualche 0 i j p 1 si avranno due potenze uguali: a i = a j (mod p) (perchè?) Questo vuol dire che a j i = 1 (mod p) (perché?) Sia s p 1 il minimo intero positivo tale che a s = 1 (mod p) Le potenze distinte di a sono 1,a,a 2,...,a s 1. Dopodichè, dato che a s = 1, si ripetono. Per ogni b Z p, gli elementi b,ba,ba 2,...,ba s 1 sono in numero di s L insieme degli elementi non nulli di Z p è ripartito in tali gruppi di s elementi s divide p 1

Il Teorema di Eulero - forma debole L argomento vale per ogni n sostituendo l espressione elementi non nulli di Z p con elementi invertibili in Z n.

Il Teorema di Eulero - forma debole L argomento vale per ogni n sostituendo l espressione elementi non nulli di Z p con elementi invertibili in Z n. Teorema 2 (Teorema di Eulero - forma debole) Sia n un intero positivo e sia a un elemento di Z n tale che MCD(a,n) = 1. Allora a kφ(n)+1 = a (mod n)

Il Teorema di Eulero - forma debole L argomento vale per ogni n sostituendo l espressione elementi non nulli di Z p con elementi invertibili in Z n. Teorema 2 (Teorema di Eulero - forma debole) Sia n un intero positivo e sia a un elemento di Z n tale che MCD(a,n) = 1. Allora a kφ(n)+1 = a (mod n) Esercizio 5 Verificare il Teorema di Eulero in forma debole per le seguenti coppie di interi: n = 10, a = 3; n = 20, a = 3; n = 15, a = 7.

Il Teorema di Eulero - forma debole L argomento vale per ogni n sostituendo l espressione elementi non nulli di Z p con elementi invertibili in Z n. Teorema 2 (Teorema di Eulero - forma debole) Sia n un intero positivo e sia a un elemento di Z n tale che MCD(a,n) = 1. Allora a kφ(n)+1 = a (mod n) Esercizio 5 Verificare il Teorema di Eulero in forma debole per le seguenti coppie di interi: n = 10, a = 3; n = 20, a = 3; n = 15, a = 7. Esperimento 9 L ipotesi MCD(a, n) = 1 è veramente necessaria. Il comando MAGMA per la funzione di Eulero è EulerPhi(n).

Il Teorema di Eulero - forma debole L argomento vale per ogni n sostituendo l espressione elementi non nulli di Z p con elementi invertibili in Z n. Teorema 2 (Teorema di Eulero - forma debole) Sia n un intero positivo e sia a un elemento di Z n tale che MCD(a,n) = 1. Allora a kφ(n)+1 = a (mod n) Esercizio 5 Verificare il Teorema di Eulero in forma debole per le seguenti coppie di interi: n = 10, a = 3; n = 20, a = 3; n = 15, a = 7. Esperimento 9 L ipotesi MCD(a, n) = 1 è veramente necessaria. Il comando MAGMA per la funzione di Eulero è EulerPhi(n). controesempi per n = 8,12,16,20,24,28,32 e a = 2

Il Teorema di Eulero - forma RSA Teorema 3 (Teorema di Eulero - forma debole) Sia n un intero positivo della forma n = pq con p e q primi, e sia a un elemento qualsiasi di Z n. Allora a kφ(n)+1 = a (mod n)

Il Teorema di Eulero - forma RSA Teorema 3 (Teorema di Eulero - forma debole) Sia n un intero positivo della forma n = pq con p e q primi, e sia a un elemento qualsiasi di Z n. Allora a kφ(n)+1 = a (mod n) Esperimento 10 Verificare il Teorema per un certo numero di casi con l aiuto di Magma.

Il crittosistema RSA: esempio Chiave pubblica di Ryanair: Modulo (1024 bit): AE 64 DD 3D 64 45 D9 56 AB 5B 18 D1 03 3F 68 6B F4 F7 73 5B A1 C7 B3 1D CE A8 3E 57 FC B0 51 86 81 E0 81 AC C1 72 F5 4F E0 F5 8E 47 5B 93 D6 33 D6 21 F9 9F 81 10 18 C5 47 C1 33 94 1B D1 3A 88 5B 3B 32 92 49 75 0A 92 8E 17 0A 74 F7 EA C0 E5 A9 BD E2 02 84 FC 86 C2 F3 98 64 74 FE AA D4 8D 8D 8F CD 95 65 83 25 B9 DE D3 47 C1 A6 33 C9 F2 A8 A8 DC 02 3F C3 4F 4A A7 F3 D2 A4 69 A8 15 E5 Esponente pubblico: 01 00 01 Convertitore: http://www.darkfader.net/toolbox/convert/

Modulo: n=1224636320672332376854929347869119904 0477093210821604946093123578879723617610 5263908162964225569626674489521384482266 08721094478164975540605363932171762349 33981903827508484426161207150970417382312 3612861195507350855476831120652049276 218003093539439507232494194792472213278435 5728552674799561849761300834948581 Esponente pubblico: e=65537

RSA Chiave pubblica: n, e

RSA Chiave pubblica: n, e Chiave privata: 1 p,q numeri primi tali che n = p q 2 d Z φ(n) tale che d = 1/e (mod φ(n))

RSA Chiave pubblica: n, e Chiave privata: 1 p,q numeri primi tali che n = p q 2 d Z φ(n) tale che d = 1/e (mod φ(n)) Codifica di un messaggio M Z n : M e (mod n)

RSA Chiave pubblica: n, e Chiave privata: 1 p,q numeri primi tali che n = p q 2 d Z φ(n) tale che d = 1/e (mod φ(n)) Codifica di un messaggio M Z n : Decodifica di un messaggio M e (mod n) M = (M e ) d

RSA Chiave pubblica: n, e Chiave privata: 1 p,q numeri primi tali che n = p q 2 d Z φ(n) tale che d = 1/e (mod φ(n)) Codifica di un messaggio M Z n : Decodifica di un messaggio M e (mod n) M = (M e ) d Perché è corretta la decodifica?

RSA Chiave pubblica: n, e Chiave privata: 1 p,q numeri primi tali che n = p q 2 d Z φ(n) tale che d = 1/e (mod φ(n)) Codifica di un messaggio M Z n : Decodifica di un messaggio M e (mod n) M = (M e ) d Perché è corretta la decodifica? Grazie al Teorema di Eulero ed = 1 (mod φ(n)) ed = k φ(n)+1 (M e ) d = M ed = M kφ(n)+1 = M

Fattibilità calcolo di n a partire da p e q: moltiplicazione calcolo di d: divisione in Z φ(n) codifica: elevamento a potenza decodifica: elevamento a potenza

Fattibilità calcolo di n a partire da p e q: moltiplicazione calcolo di d: divisione in Z φ(n) codifica: elevamento a potenza decodifica: elevamento a potenza calcolo di p e q: PROBLEMA

Fattibilità calcolo di n a partire da p e q: moltiplicazione calcolo di d: divisione in Z φ(n) codifica: elevamento a potenza decodifica: elevamento a potenza calcolo di p e q: PROBLEMA Nota: 65537 è il più grande numero primo conosciuto della forma 2 2n +1 (in questo caso n = 4). Per questa caratteristica viene comunemente usato come esponente pubblico. Al tempo stesso è (a) abbastanza grande (b) primo (c) in forma tale da velocizzare square and multiply

Sicurezza Risalire da M e a M conoscendo e e n? Serve d Risalire a d conoscendo e e n? Serve φ(n) Risalire a φ(n) conoscendo n? Servono p e q

Sicurezza Risalire da M e a M conoscendo e e n? Serve d Risalire a d conoscendo e e n? Serve φ(n) Risalire a φ(n) conoscendo n? Servono p e q Se si è sicuri che nessuno riesca a fattorizzare n, allora il sistema può considerarsi sicuro.

Sicurezza Risalire da M e a M conoscendo e e n? Serve d Risalire a d conoscendo e e n? Serve φ(n) Risalire a φ(n) conoscendo n? Servono p e q Se si è sicuri che nessuno riesca a fattorizzare n, allora il sistema può considerarsi sicuro. Il PROBLEMA: Se non si conosce un metodo per fattorizzare un numero di 150 cifre, come faccio a costruire due numeri primi di 150 cifre?

Sicurezza Risalire da M e a M conoscendo e e n? Serve d Risalire a d conoscendo e e n? Serve φ(n) Risalire a φ(n) conoscendo n? Servono p e q Se si è sicuri che nessuno riesca a fattorizzare n, allora il sistema può considerarsi sicuro. Il PROBLEMA: Se non si conosce un metodo per fattorizzare un numero di 150 cifre, come faccio a costruire due numeri primi di 150 cifre? SOLUZIONE Usare numeri che sono primi con probabilità arbitrariamente alta (per capirci, 99.9999999999999 per cento)

Esperimento 11 Considerare due numeri primi molto grandi: p := NextPrime(10 150 +32141204312037210347210472104712 0412304712034712304712412) q := NextPrime(p + 100000)

Esperimento 11 Considerare due numeri primi molto grandi: p := NextPrime(10 150 +32141204312037210347210472104712 0412304712034712304712412) q := NextPrime(p + 100000) Calcolarne il prodotto n

Esperimento 11 Considerare due numeri primi molto grandi: p := NextPrime(10 150 +32141204312037210347210472104712 0412304712034712304712412) q := NextPrime(p + 100000) Calcolarne il prodotto n Provare a fattorizzare n con il comando Factorization

Esperimento 11 Considerare due numeri primi molto grandi: p := NextPrime(10 150 +32141204312037210347210472104712 0412304712034712304712412) q := NextPrime(p + 100000) Calcolarne il prodotto n Provare a fattorizzare n con il comando Factorization Usereste questa chiave a tutela della vostra riservatezza e del vostro denaro?

Esperimento 11 Considerare due numeri primi molto grandi: p := NextPrime(10 150 +32141204312037210347210472104712 0412304712034712304712412) q := NextPrime(p + 100000) Calcolarne il prodotto n Provare a fattorizzare n con il comando Factorization Usereste questa chiave a tutela della vostra riservatezza e del vostro denaro? Provare con questo algoritmo: trovato:=false; i:=1; while not trovato do m:=n + i 2 ; if IsSquare(m) then trovato:=true; bool,t:=issquare(m); t; P:=t-i; P; Q:=t+i; Q; end if; i:=i+1; end while;

Cosa è successo? Idea dell algoritmo: per tentativi provare a controllare se per caso n+i 2 è un quadrato perfetto (test veloce)

Cosa è successo? Idea dell algoritmo: per tentativi provare a controllare se per caso n+i 2 è un quadrato perfetto (test veloce) In tal caso da n+i 2 = t 2 segue n = t 2 i 2 = (t i) (t +i)

Cosa è successo? Idea dell algoritmo: per tentativi provare a controllare se per caso n+i 2 è un quadrato perfetto (test veloce) In tal caso da n+i 2 = t 2 segue n = t 2 i 2 = (t i) (t +i) Secondo voi, quali sono le chiavi deboli per questo algoritmo?

Chiavi deboli L algoritmo appena visto si chiama Algoritmo di Fermat, e abbiamo visto che ha successo nel caso in cui p e q siano relativamente vicini

Chiavi deboli L algoritmo appena visto si chiama Algoritmo di Fermat, e abbiamo visto che ha successo nel caso in cui p e q siano relativamente vicini Ne esistono altri di algoritmi di fattorizzazione che risultano veloci se p e q hanno determinate proprietà

Chiavi deboli L algoritmo appena visto si chiama Algoritmo di Fermat, e abbiamo visto che ha successo nel caso in cui p e q siano relativamente vicini Ne esistono altri di algoritmi di fattorizzazione che risultano veloci se p e q hanno determinate proprietà Un altro esempio di chiave debole è quella in cui p 1 o q 1 si fattorizzano in tanti fattori primi piccoli

Chiavi deboli L algoritmo appena visto si chiama Algoritmo di Fermat, e abbiamo visto che ha successo nel caso in cui p e q siano relativamente vicini Ne esistono altri di algoritmi di fattorizzazione che risultano veloci se p e q hanno determinate proprietà Un altro esempio di chiave debole è quella in cui p 1 o q 1 si fattorizzano in tanti fattori primi piccoli Per questo si tende a scegliere p = 2p 1 +1 e q = 2q 1 +1 con p 1 e q 1 primi

Chiavi deboli L algoritmo appena visto si chiama Algoritmo di Fermat, e abbiamo visto che ha successo nel caso in cui p e q siano relativamente vicini Ne esistono altri di algoritmi di fattorizzazione che risultano veloci se p e q hanno determinate proprietà Un altro esempio di chiave debole è quella in cui p 1 o q 1 si fattorizzano in tanti fattori primi piccoli Per questo si tende a scegliere p = 2p 1 +1 e q = 2q 1 +1 con p 1 e q 1 primi Pare che una percentuale rilevante (compresa fra 1 e 10 per cento) delle chiavi RSA sia debole

Funzioni hash L hash (o digest) di un file ha gli stessi scopi dell impronta digitale di un individuo. Sintetizza un individuo/file in un formato unico (160 bit per i file) Si ottiene con relativa facilità Praticamente impossibile data un impronta digitale, risalire al file/individuo Praticamente impossibile dato un file/individuo, trovarne un altro con la stessa impronta Praticamente impossibile trovare due file/individui con la stessa impronta

Perché c è bisogno di una funzione hash? Integrità dei dati. Trasferimenti file di grosse dimensioni (E-mule, torrent, etc).

Perché c è bisogno di una funzione hash? Integrità dei dati. Trasferimenti file di grosse dimensioni (E-mule, torrent, etc). Autenticazione di un documento. Si calcola l impronta del file ottenuto combinando documento e chiave simmetrica.

Perché c è bisogno di una funzione hash? Integrità dei dati. Trasferimenti file di grosse dimensioni (E-mule, torrent, etc). Autenticazione di un documento. Si calcola l impronta del file ottenuto combinando documento e chiave simmetrica. Firma digitale. Non si firma l intero documento, ma la sua impronta.

Perché c è bisogno di una funzione hash? Integrità dei dati. Trasferimenti file di grosse dimensioni (E-mule, torrent, etc). Autenticazione di un documento. Si calcola l impronta del file ottenuto combinando documento e chiave simmetrica. Firma digitale. Non si firma l intero documento, ma la sua impronta. Per questi scopi è fondamentale che sia praticamente impossibile trovare due file con la stessa hash Una funzione hash deve essere resistente alle collisioni

Un modello ideale La funzione hash è calcolata da un oracolo in modo totalmente oscuro, che nessuno conosce. Casuale ma riproducibile.

Un modello ideale La funzione hash è calcolata da un oracolo in modo totalmente oscuro, che nessuno conosce. Casuale ma riproducibile. Si cerca di riprodurre per quanto possibile il modello oracolo casuale.

Un modello ideale La funzione hash è calcolata da un oracolo in modo totalmente oscuro, che nessuno conosce. Casuale ma riproducibile. Si cerca di riprodurre per quanto possibile il modello oracolo casuale. In tutti i nostri computer esistono algoritmi che simulano tale modello. Il più utilizzato al momento è SHA1. SHA=Secure Hash Algorithm FCIV - md5, sha1 nomefile.con.path in Windows, sha1sum nomefile in Linux

Un modello ideale La funzione hash è calcolata da un oracolo in modo totalmente oscuro, che nessuno conosce. Casuale ma riproducibile. Si cerca di riprodurre per quanto possibile il modello oracolo casuale. In tutti i nostri computer esistono algoritmi che simulano tale modello. Il più utilizzato al momento è SHA1. SHA=Secure Hash Algorithm FCIV - md5, sha1 nomefile.con.path in Windows, sha1sum nomefile in Linux SHA1 calcola un impronta di 160 bit Perché proprio 160 bit sono necessari per un impronta?

Il paradosso del compleanno In una classe di 23 alunni la probabilità che ve ne siano 2 con la stessa data di nascita supera il 50 per cento

Il paradosso del compleanno In una classe di 23 alunni la probabilità che ve ne siano 2 con la stessa data di nascita supera il 50 per cento In una classe di 40 alunni supera l 85 per cento

Il paradosso del compleanno In una classe di 23 alunni la probabilità che ve ne siano 2 con la stessa data di nascita supera il 50 per cento In una classe di 40 alunni supera l 85 per cento Teorema 4 Sia h una funzione casuale, associata ad un file/individuo, che può assumere M valori. Sia dato un insieme di 2M ln2 file/individui. Allora la probabilità di trovare due file/individui a cui è associato lo stesso valore supera il 50 per cento

Il paradosso del compleanno In una classe di 23 alunni la probabilità che ve ne siano 2 con la stessa data di nascita supera il 50 per cento In una classe di 40 alunni supera l 85 per cento Teorema 4 Sia h una funzione casuale, associata ad un file/individuo, che può assumere M valori. Sia dato un insieme di 2M ln2 file/individui. Allora la probabilità di trovare due file/individui a cui è associato lo stesso valore supera il 50 per cento Se l hash ha k bit, i possibili esiti di un hash sono 2 k. Pertanto in un insieme di circa 2 k = 2 k/2 file sarebbe abbastanza probabile trovare una collisione. Per questo motivo, ad esempio, un hash di 80 bit non sarebbe sicuro.

Dimostrazione del paradosso del compleanno Si consideri un insieme di n individui. La probabilità di trovarne due con lo stesso compleanno è P = 1 365 1 365 365 2 365 365 (n 1). 365

Dimostrazione del paradosso del compleanno Si consideri un insieme di n individui. La probabilità di trovarne due con lo stesso compleanno è O anche P = 1 365 1 365 365 2 365 365 (n 1). 365 P = 1 (1 1 365 ) (1 2 (n 1) ) (1 365 365 ).

Dimostrazione del paradosso del compleanno Si consideri un insieme di n individui. La probabilità di trovarne due con lo stesso compleanno è O anche P = 1 365 1 365 365 2 365 365 (n 1). 365 P = 1 (1 1 365 ) (1 2 (n 1) ) (1 365 365 ). Per capirci qualcosa occorre considerare che per numeri x vicini allo zero si ha 1 x e x

Dimostrazione del paradosso del compleanno Si consideri un insieme di n individui. La probabilità di trovarne due con lo stesso compleanno è O anche P = 1 365 1 365 365 2 365 365 (n 1). 365 P = 1 (1 1 365 ) (1 2 (n 1) ) (1 365 365 ). Per capirci qualcosa occorre considerare che per numeri x vicini allo zero si ha 1 x e x Pertanto approssimiamo P come segue P e 1/365 e 2/365 (n 1)/365 e 3/365 e

P e 1+2+...+(n 1) 365 = e 1 2 (n 1) (n 2) 365

P e 1+2+...+(n 1) 365 = e 1 2 (n 1) (n 2) 365 Eseguendo il logaritmo di ambo i membri lnp n2 3n+2 2 365

P e 1+2+...+(n 1) 365 = e 1 2 (n 1) (n 2) 365 Eseguendo il logaritmo di ambo i membri lnp n2 3n+2 2 365 Ulteriore approssimazione: n 2 3n+2 n 2. Pertanto lnp n2 2 365

P e 1+2+...+(n 1) 365 = e 1 2 (n 1) (n 2) 365 Eseguendo il logaritmo di ambo i membri lnp n2 3n+2 2 365 Ulteriore approssimazione: n 2 3n+2 n 2. Pertanto lnp n2 2 365 Da qui segue l asserto: per P = 1/2 basta n = 23.

P e 1+2+...+(n 1) 365 = e 1 2 (n 1) (n 2) 365 Eseguendo il logaritmo di ambo i membri lnp n2 3n+2 2 365 Ulteriore approssimazione: n 2 3n+2 n 2. Pertanto lnp n2 2 365 Da qui segue l asserto: per P = 1/2 basta n = 23. In generale, se abbiamo M esiti (es. 2 160 per SHA1) allora per avere P = 1/2 occorre ln1/2 2 M n 2 n 2 ln2 M

Quale proprietà delle derivate abbiamo usato? Si veda fooplot.com

Il Teorema del Quinto A

Il Teorema del Quinto A Esperimento: scrivere tutti gli elementi invertibili di Z n :

Il Teorema del Quinto A Esperimento: scrivere tutti gli elementi invertibili di Z n : n = 10 1,3,7,9 n = 15 1,2,4,7,8,11,13,14 n = 22 1,3,5,7,9,13,15,17,19,21

Il Teorema del Quinto A Esperimento: scrivere tutti gli elementi invertibili di Z n : n = 10 1,3,7,9 n = 15 1,2,4,7,8,11,13,14 n = 22 1,3,5,7,9,13,15,17,19,21 Osservazione: la somma degli elementi invertibili di Z n è divisibile per n

Il Teorema del Quinto A Esperimento: scrivere tutti gli elementi invertibili di Z n : n = 10 1,3,7,9 n = 15 1,2,4,7,8,11,13,14 n = 22 1,3,5,7,9,13,15,17,19,21 Osservazione: la somma degli elementi invertibili di Z n è divisibile per n Congettura: per ogni intero positivo n > 1, a = 0 (mod n) a Z n,mcd(a,n)=1

Dimostrazione: 1 Se MCD(a,n) = 1 allora anche MCD(n a,n) = 1. Infatti ogni divisore d di n a e n sarebbe un divisore di a e quindi di a 2 Siano a 1,...,a s sono gli elementi di Z n primi con n e minori di n/2. Allora tutti gli elementi di Z n primi con n sono a 1,...,a s,n a 1,...,n a s 3 Pertanto la somma totale è uguale a a 1 +...+a s +n a 1 +...+n a s = n+...+n = 0 (mod n)

Dimostrazione: 1 Se MCD(a,n) = 1 allora anche MCD(n a,n) = 1. Infatti ogni divisore d di n a e n sarebbe un divisore di a e quindi di a 2 Siano a 1,...,a s sono gli elementi di Z n primi con n e minori di n/2. Allora tutti gli elementi di Z n primi con n sono a 1,...,a s,n a 1,...,n a s 3 Pertanto la somma totale è uguale a a 1 +...+a s +n a 1 +...+n a s = n+...+n = 0 (mod n) Teorema 5 Per ogni intero positivo n > 1, a Z n,mcd(a,n)=1 a = 0 (mod n)

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n))

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n Firma del documento: F = D d (mod n) Z n

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n Firma del documento: F = D d (mod n) Z n Documento firmato: (D,F) con F = D d (mod n)

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n Firma del documento: F = D d (mod n) Z n Documento firmato: (D,F) con F = D d (mod n) Verifica della firma: F e = D (mod n)???

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n Firma del documento: F = D d (mod n) Z n Documento firmato: (D,F) con F = D d (mod n) Verifica della firma: F e = D (mod n)??? Il punto chiave è che se F e = D (mod n), allora (F e ) d = D d (mod n) e quindi per il Teorema di Eulero F = D d (mod n).

La firma digitale Idea: la firma di un documento consiste nel mascherare il documento con la propria chiave privata Firma digitale RSA: chiave pubblica di Alice (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare: D Z n Firma del documento: F = D d (mod n) Z n Documento firmato: (D,F) con F = D d (mod n) Verifica della firma: F e = D (mod n)??? Il punto chiave è che se F e = D (mod n), allora (F e ) d = D d (mod n) e quindi per il Teorema di Eulero F = D d (mod n). Ma solo Alice conosce d

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n)

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso.

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso. Se ho due documenti firmati da Alice, diciamo (D 1,F 1 ) e (D 2,F 2 ), e faccio finta di essere Alice e spedisco (D 1 D 2,F 1 F 2 ), allora la verifica della firma è accettata: (F 1 F 2 ) e = F e 1 F e 2 = D 1 D 2 (mod n)

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso. Se ho due documenti firmati da Alice, diciamo (D 1,F 1 ) e (D 2,F 2 ), e faccio finta di essere Alice e spedisco (D 1 D 2,F 1 F 2 ), allora la verifica della firma è accettata: (F 1 F 2 ) e = F e 1 F e 2 = D 1 D 2 (mod n) D 1 D 2 probabilmente è un documento senza senso.

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso. Se ho due documenti firmati da Alice, diciamo (D 1,F 1 ) e (D 2,F 2 ), e faccio finta di essere Alice e spedisco (D 1 D 2,F 1 F 2 ), allora la verifica della firma è accettata: (F 1 F 2 ) e = F e 1 F e 2 = D 1 D 2 (mod n) D 1 D 2 probabilmente è un documento senza senso. La facilità di ottenere firme false è un problema

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso. Se ho due documenti firmati da Alice, diciamo (D 1,F 1 ) e (D 2,F 2 ), e faccio finta di essere Alice e spedisco (D 1 D 2,F 1 F 2 ), allora la verifica della firma è accettata: (F 1 F 2 ) e = F e 1 F e 2 = D 1 D 2 (mod n) D 1 D 2 probabilmente è un documento senza senso. La facilità di ottenere firme false è un problema Un altro problema è che un documento/file non sempre può non essere rappresentato da un elemento di Z n (es.: DVD PS3)

Falsificazioni firma digitale RSA Se faccio finta di essere Alice e spedisco (F e,f), allora la verifica della firma è accettata: F e = F e (mod n) F e probabilmente è un documento senza senso. Se ho due documenti firmati da Alice, diciamo (D 1,F 1 ) e (D 2,F 2 ), e faccio finta di essere Alice e spedisco (D 1 D 2,F 1 F 2 ), allora la verifica della firma è accettata: (F 1 F 2 ) e = F e 1 F e 2 = D 1 D 2 (mod n) D 1 D 2 probabilmente è un documento senza senso. La facilità di ottenere firme false è un problema Un altro problema è che un documento/file non sempre può non essere rappresentato da un elemento di Z n (es.: DVD PS3) Soluzione: utilizzo funzioni hash

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n))

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria Si calcola l hash di D con l algoritmo SHA1, diciamo H(D), e lo si interpreta come elemento di Z n

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria Si calcola l hash di D con l algoritmo SHA1, diciamo H(D), e lo si interpreta come elemento di Z n Firma del documento: F = H(D) d (mod n) Z n

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria Si calcola l hash di D con l algoritmo SHA1, diciamo H(D), e lo si interpreta come elemento di Z n Firma del documento: F = H(D) d (mod n) Z n Documento firmato: (D,F) con F = H(D) d (mod n)

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria Si calcola l hash di D con l algoritmo SHA1, diciamo H(D), e lo si interpreta come elemento di Z n Firma del documento: F = H(D) d (mod n) Z n Documento firmato: (D,F) con F = H(D) d (mod n) Verifica della firma: F e = H(D) (mod n)???

Firma digitale SHA1-RSA Firma digitale SHA1-RSA: chiave pubblica (n, e), chiave privata (p,q,d) con n = p q e e d = 1 (mod φ(n)) Documento da firmare da Alice: D, file di dimensione praticamente arbitraria Si calcola l hash di D con l algoritmo SHA1, diciamo H(D), e lo si interpreta come elemento di Z n Firma del documento: F = H(D) d (mod n) Z n Documento firmato: (D,F) con F = H(D) d (mod n) Verifica della firma: F e = H(D) (mod n)??? Il punto chiave è che se F e = H(D) (mod n), allora (F e ) d = H(D) d (mod n) e quindi per il Teorema di Eulero F = H(D) d (mod n). Ma solo Alice conosce d.

Falsificazioni di SHA1-RSA? (F e,f) non è accettato perchè F non è l hash di F. Dovrei trovare un file che abbia come impronta F, ma come sappiamo è praticamente impossibile.

Falsificazioni di SHA1-RSA? (F e,f) non è accettato perchè F non è l hash di F. Dovrei trovare un file che abbia come impronta F, ma come sappiamo è praticamente impossibile. Allo stesso modo, non è più accettata (D 1 D 2,F 1 F 2 ) perché H(D 1 D 2 ) d H(D 1 ) d H(D 2 ) d = F 1 F 2

Firma digitale in pratica www.digitpa.gov.it Per dotarsi di firma digitale necessario rivolgersi ai certificatori accreditati autorizzati da DigitPA che garantiscono lidentità dei soggetti che utilizzano la firma digitale.

Firma digitale in pratica www.digitpa.gov.it Per dotarsi di firma digitale necessario rivolgersi ai certificatori accreditati autorizzati da DigitPA che garantiscono lidentità dei soggetti che utilizzano la firma digitale. http://www.digitpa.gov.it/firma-digitale/certificatoriaccreditati/certificatori-attivi Esempio forse più conosciuto in TV: Aruba. (http://www.pec.it/firmadigitale.aspx)

Firma digitale in pratica www.digitpa.gov.it Per dotarsi di firma digitale necessario rivolgersi ai certificatori accreditati autorizzati da DigitPA che garantiscono lidentità dei soggetti che utilizzano la firma digitale. http://www.digitpa.gov.it/firma-digitale/certificatoriaccreditati/certificatori-attivi Esempio forse più conosciuto in TV: Aruba. (http://www.pec.it/firmadigitale.aspx) http://www.digitpa.gov.it/firma-elettronica/liste-certificati Ogni Autorità di Certificazione è a sua volta Certificata dal Governo/Unione Europea.

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority.

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN.

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene:

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice Il certificato di Alice. Il certificato C di Alice contiene la chiave pubblica n, e di Alice, ed è firmato dalla Certification Authority

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice Il certificato di Alice. Il certificato C di Alice contiene la chiave pubblica n, e di Alice, ed è firmato dalla Certification Authority Quando Alice vuole firmare un file inserisce la chiavetta e avvia il programma di firma inserendo il PIN. Il risultato è un file.p7m che contiene:

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice Il certificato di Alice. Il certificato C di Alice contiene la chiave pubblica n, e di Alice, ed è firmato dalla Certification Authority Quando Alice vuole firmare un file inserisce la chiavetta e avvia il programma di firma inserendo il PIN. Il risultato è un file.p7m che contiene: Il documento D (esempio file.doc o file.pdf)

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice Il certificato di Alice. Il certificato C di Alice contiene la chiave pubblica n, e di Alice, ed è firmato dalla Certification Authority Quando Alice vuole firmare un file inserisce la chiavetta e avvia il programma di firma inserendo il PIN. Il risultato è un file.p7m che contiene: Il documento D (esempio file.doc o file.pdf) La firma F = SHA1(D) d (mod n)

Firma digitale in pratica Alice si reca fisicamente dalla Certification Authority. La Certification Authority riconosce l identità di Alice e le rilascia una chiavetta usb e un PIN. La chiavetta USB contiene: La chiave privata p,q,d di Alice Il certificato di Alice. Il certificato C di Alice contiene la chiave pubblica n, e di Alice, ed è firmato dalla Certification Authority Quando Alice vuole firmare un file inserisce la chiavetta e avvia il programma di firma inserendo il PIN. Il risultato è un file.p7m che contiene: Il documento D (esempio file.doc o file.pdf) La firma F = SHA1(D) d (mod n) Il certificato C di Alice (quindi la chiave pubblica di Alice e la firma della Certification Authority)

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice?

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice? Controlla la firma del certificato: deve essere sicuro che il certificato C sia stato firmato da una Certification Authority. Il browser si collega al sito governativo dove è sicuro di trovare la VERA chiave pubblica della Certification Authority. Tale chiave pubblica è ciò che serve per controllare l autenticità del certificato.

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice? Controlla la firma del certificato: deve essere sicuro che il certificato C sia stato firmato da una Certification Authority. Il browser si collega al sito governativo dove è sicuro di trovare la VERA chiave pubblica della Certification Authority. Tale chiave pubblica è ciò che serve per controllare l autenticità del certificato. Dopo aver controllato il certificato, Bob è sicuro che la chiave pubblica di Alice è quella riportata nel certificato stesso. Quindi

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice? Controlla la firma del certificato: deve essere sicuro che il certificato C sia stato firmato da una Certification Authority. Il browser si collega al sito governativo dove è sicuro di trovare la VERA chiave pubblica della Certification Authority. Tale chiave pubblica è ciò che serve per controllare l autenticità del certificato. Dopo aver controllato il certificato, Bob è sicuro che la chiave pubblica di Alice è quella riportata nel certificato stesso. Quindi Calcola l impronta di D =contratto.pdf: SHA1(D)

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice? Controlla la firma del certificato: deve essere sicuro che il certificato C sia stato firmato da una Certification Authority. Il browser si collega al sito governativo dove è sicuro di trovare la VERA chiave pubblica della Certification Authority. Tale chiave pubblica è ciò che serve per controllare l autenticità del certificato. Dopo aver controllato il certificato, Bob è sicuro che la chiave pubblica di Alice è quella riportata nel certificato stesso. Quindi Calcola l impronta di D =contratto.pdf: SHA1(D) Calcola SHA1(D) e

Firma digitale in pratica Bob riceve il file contratto.pdf.p7m, che consiste di D =contratto.pdf, F, C Quali passi compie per verificare la firma di Alice? Controlla la firma del certificato: deve essere sicuro che il certificato C sia stato firmato da una Certification Authority. Il browser si collega al sito governativo dove è sicuro di trovare la VERA chiave pubblica della Certification Authority. Tale chiave pubblica è ciò che serve per controllare l autenticità del certificato. Dopo aver controllato il certificato, Bob è sicuro che la chiave pubblica di Alice è quella riportata nel certificato stesso. Quindi Calcola l impronta di D =contratto.pdf: SHA1(D) Calcola SHA1(D) e Controlla che SHA1(D) e = F

Codici autocorrettori Da Wikipedia Error Detection and Correction: Many communication channels are subject to channel noise, and thus errors may be introduced during transmission from the source to a receiver. Error detection techniques allow detecting such errors, while error correction enables reconstruction of the original data. Development of error-correction codes was tightly coupled with the history of deep-space missions due to the extreme dilution of signal power over interplanetary distances, and the limited power availability aboard space probes. Whereas early missions sent their data uncoded, starting from 1968 digital error correction was implemented. The Reed-Muller code was well suited to the noise the spacecraft was subject to (approximately matching a bell curve), and was implemented at the Mariner spacecraft for missions between 1969 and 1977. The Voyager 1 and Voyager 2 missions, which started in 1977, were designed to deliver color imaging amongst scientific information of Jupiter and Saturn. This resulted in increased coding requirements, and thus the spacecraft were supported by (optimally Viterbi-decoded) convolutional codes that could be concatenated with an outer Golay (24,12,8) code. The Voyager 2 probe additionally supported an implementation of a Reed-Solomon code: the concatenated Reed-Solomon-Viterbi (RSV) code allowed for very powerful error correction, and enabled the spacecraft s extended journey to Uranus and Neptune. The CCSDS currently recommends usage of error correction codes with performance similar to the Voyager 2 RSV code as a minimum. Concatenated codes are increasingly falling out of favor with space missions, and are replaced by more powerful codes such as Turbo codes or LDPC codes.

Un esempio elementare N 0 0 E 0 1 O 1 0 S 1 1

Un esempio elementare N 0 0 0 E 0 1 1 O 1 0 1 S 1 1 0

Un esempio elementare N 0 0 0 0 0 E 0 1 1 1 0 O 1 0 1 0 1 S 1 1 0 1 1

Un esempio elementare N 0 0 0 0 0 E 0 1 1 1 0 O 1 0 1 0 1 S 1 1 0 1 1 Un qualunque errore può essere corretto automaticamente!

Un esempio elementare N 0 0 0 0 0 E 0 1 1 1 0 O 1 0 1 0 1 S 1 1 0 1 1 Un qualunque errore può essere corretto automaticamente! Idea: Codificare le parole del nostro linguaggio in modo tale che siano tutte abbastanza diverse fra loro

Alfabeto: Z p, p primo

Alfabeto: Z p, p primo Parole del codice: alcune sequenze di n lettere dell alfabeto

Alfabeto: Z p, p primo Parole del codice: alcune sequenze di n lettere dell alfabeto Distanza di due parole: d((a 1,a 2,...,a n ),(b 1,b 2,...,b n )) = #{i = 1,...,n a i b i }

Alfabeto: Z p, p primo Parole del codice: alcune sequenze di n lettere dell alfabeto Distanza di due parole: d((a 1,a 2,...,a n ),(b 1,b 2,...,b n )) = #{i = 1,...,n a i b i } Esempi: d((1,2,3),(0,2,3)) = 1, d((0,2,3,0),(1,2,1,0)) = 2

Alfabeto: Z p, p primo Parole del codice: alcune sequenze di n lettere dell alfabeto Distanza di due parole: d((a 1,a 2,...,a n ),(b 1,b 2,...,b n )) = #{i = 1,...,n a i b i } Esempi: d((1,2,3),(0,2,3)) = 1, d((0,2,3,0),(1,2,1,0)) = 2 Teorema 6 Se la distanza minima di due parole del codice è D, allora il codice corregge fino a (D 1)/2-errori

Codici di Reed-Solomon (versione soft) Si fissano k < m < p, con p primo

Codici di Reed-Solomon (versione soft) Si fissano k < m < p, con p primo Alfabeto: Z p, lunghezza delle parole: m

Codici di Reed-Solomon (versione soft) Si fissano k < m < p, con p primo Alfabeto: Z p, lunghezza delle parole: m Ogni parola è associata a un polinomio f(x) = a 0 +a 1 X +a 2 X 2 +...+a k X k a coefficienti in Z p e grado minore o uguale di k: C = {(f(1),f(2),...f(m)) f polinomio con deg(f) k}

Codici di Reed-Solomon (versione soft) Si fissano k < m < p, con p primo Alfabeto: Z p, lunghezza delle parole: m Ogni parola è associata a un polinomio f(x) = a 0 +a 1 X +a 2 X 2 +...+a k X k a coefficienti in Z p e grado minore o uguale di k: C = {(f(1),f(2),...f(m)) f polinomio con deg(f) k} Teorema 7 (Ruffini) Un polinomio di grado k non nullo ha al massimo k radici.

Esempio: p = 7,m = 4,k = 2

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)......

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)...... Quanti errori si possono correggere con un codice di Reed-Solomon?

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)...... Quanti errori si possono correggere con un codice di Reed-Solomon? d((f(1),f(2),...,f(m)),(g(1),g(2),...,g(m))) è uguale a m meno il numero di valori i = 1,...,m per cui (f g)(i) = 0

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)...... Quanti errori si possono correggere con un codice di Reed-Solomon? d((f(1),f(2),...,f(m)),(g(1),g(2),...,g(m))) è uguale a m meno il numero di valori i = 1,...,m per cui (f g)(i) = 0 Quante radici al massimo può avere f g?

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)...... Quanti errori si possono correggere con un codice di Reed-Solomon? d((f(1),f(2),...,f(m)),(g(1),g(2),...,g(m))) è uguale a m meno il numero di valori i = 1,...,m per cui (f g)(i) = 0 Quante radici al massimo può avere f g? k

Esempio: p = 7,m = 4,k = 2 Esempi di parole: f(x) = 1+X 2 (1+1 2,1+2 2,1+3 2,1+4 2 ) = (2,5,3,3) f(x) = 1+X +X 2 (3,0,6,0)...... Quanti errori si possono correggere con un codice di Reed-Solomon? d((f(1),f(2),...,f(m)),(g(1),g(2),...,g(m))) è uguale a m meno il numero di valori i = 1,...,m per cui (f g)(i) = 0 Quante radici al massimo può avere f g? Pertanto D m k e quindi il codice di Reed-Solomon corregge fino a (m k)/2 errori! k