Transcript
Page 1: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Primalita

Gregorio D’Agostino

11 Aprile 2017

Page 2: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi Esatti

Metodi indeterminati

Esercizi

Page 3: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Requisiti per la cifratura

I In molte applicazioni crittografiche (abbiamo visto RSA)bisogna trovare numeri primi molto grandi. Quindi dobbiamodisporre di metodi per verificare la primalita di un numero.

I I numeri primi devono essere presi a caso altrimentil’attaccante si concentra sul nostro metodo per trovare i primie lo spazio delle chiavi diviene molto meno esteso. In altreparole la cifratura diviene piu debole.

I Il tempo per trovare i numeri deve essere ”ragionevole”.

Page 4: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Requisiti per la cifratura

I In molte applicazioni crittografiche (abbiamo visto RSA)bisogna trovare numeri primi molto grandi. Quindi dobbiamodisporre di metodi per verificare la primalita di un numero.

I I numeri primi devono essere presi a caso altrimentil’attaccante si concentra sul nostro metodo per trovare i primie lo spazio delle chiavi diviene molto meno esteso. In altreparole la cifratura diviene piu debole.

I Il tempo per trovare i numeri deve essere ”ragionevole”.

Page 5: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Requisiti per la cifratura

I In molte applicazioni crittografiche (abbiamo visto RSA)bisogna trovare numeri primi molto grandi. Quindi dobbiamodisporre di metodi per verificare la primalita di un numero.

I I numeri primi devono essere presi a caso altrimentil’attaccante si concentra sul nostro metodo per trovare i primie lo spazio delle chiavi diviene molto meno esteso. In altreparole la cifratura diviene piu debole.

I Il tempo per trovare i numeri deve essere ”ragionevole”.

Page 6: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodo dell’ispezione

I Algoritmo: Dato un numero n per verificare se e primo, lo sidivide n per tutti i numeri minori della sua radice quadrataapprossimata per difetto.

∀a <√n : mod(n, a) 6= 0⇒ n primo.

I Numero di operazioni (divisioni) necessarie per il test: ∼√n

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

Page 7: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodo dell’ispezione

I Algoritmo: Dato un numero n per verificare se e primo, lo sidivide n per tutti i numeri minori della sua radice quadrataapprossimata per difetto.

∀a <√n : mod(n, a) 6= 0⇒ n primo.

I Numero di operazioni (divisioni) necessarie per il test: ∼√n

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

Page 8: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodo dell’ispezione

I Algoritmo: Dato un numero n per verificare se e primo, lo sidivide n per tutti i numeri minori della sua radice quadrataapprossimata per difetto.

∀a <√n : mod(n, a) 6= 0⇒ n primo.

I Numero di operazioni (divisioni) necessarie per il test: ∼√n

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

Page 9: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1I Se si escludono anche i multipli di 5 il tempo di calcolo diviene

circa un terzo (√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 10: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1I Se si escludono anche i multipli di 5 il tempo di calcolo diviene

circa un terzo (√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 11: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1

I Se si escludono anche i multipli di 5 il tempo di calcolo divienecirca un terzo (

√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 12: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1I Se si escludono anche i multipli di 5 il tempo di calcolo diviene

circa un terzo (√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 13: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1I Se si escludono anche i multipli di 5 il tempo di calcolo diviene

circa un terzo (√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 14: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Miglioramenti del metodo della ispezioneI Se si considerano solo i numeri pari (ed il 2) si dimezza il

numero di divisioni e si aggiungono√n moltiplicazioni. Si

verificano solo i numeri della forma 2k + 1. il tempo di calcolo(∼√n(1− 1/2) = 1/2

√n).

I Memoria necessaria per il test: 3 interi di precisione pari allalunghezza di n.

I Se si escludono anche i multipli di 3 il tempo di calcolodiviene circa un terzo (

√n(1− 1/2)(1− 1/3) = 1/3

√n). Si

verificano solo i numeri della forma 6k ± 1I Se si escludono anche i multipli di 5 il tempo di calcolo diviene

circa un terzo (√n(1− 1/2)(1− 1/3)(1− 1/5) = 4/15

√n).

Memoria necessaria per il test: 6 interi di precisione pari allalunghezza di n.

I L’idea si puo estendere eliminando i multipli dei primi r primi.Il tempo scende e la memoria sale.

I Esercizio: scrivere codice Octave che attui il metododell’ispezione.

Page 15: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il crivello di Eratostene

I I crivello di Eratostene consente di trovare tutti i primi minoridella radice quadrata di un numero assegnato n e verificarnela primalita.

I Il metodo consiste nel cancellare da una lista (contenente inumeri fino a

√n) tutti i multipli dei numeri primi gia scoperti

iniziando dal 2 e dividere n solo per i sopravvissuti.

I Quando l’algoritmo e utilizzato solo per verificare la primalitadel numero n, si interrompe non appena uno dei primi dividen. L’algoritmo in questo caso e l’estensione naturale deiprecedenti.

I La memoria richiesta e pari a√n, ma il tempo si riduce: le

divisioni sono assenti e si compiono circa√nπ(n)

moltiplicazioni. Con il simbolo π(n) si indica il numero deinumeri primi minori di n.

I Esercizio: Scrivere un codice di Octave che realizzi il crivellodi Eratostene. Calcolare i primi 100 primi.

Page 16: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il crivello di Eratostene

I I crivello di Eratostene consente di trovare tutti i primi minoridella radice quadrata di un numero assegnato n e verificarnela primalita.

I Il metodo consiste nel cancellare da una lista (contenente inumeri fino a

√n) tutti i multipli dei numeri primi gia scoperti

iniziando dal 2 e dividere n solo per i sopravvissuti.

I Quando l’algoritmo e utilizzato solo per verificare la primalitadel numero n, si interrompe non appena uno dei primi dividen. L’algoritmo in questo caso e l’estensione naturale deiprecedenti.

I La memoria richiesta e pari a√n, ma il tempo si riduce: le

divisioni sono assenti e si compiono circa√nπ(n)

moltiplicazioni. Con il simbolo π(n) si indica il numero deinumeri primi minori di n.

I Esercizio: Scrivere un codice di Octave che realizzi il crivellodi Eratostene. Calcolare i primi 100 primi.

Page 17: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il crivello di Eratostene

I I crivello di Eratostene consente di trovare tutti i primi minoridella radice quadrata di un numero assegnato n e verificarnela primalita.

I Il metodo consiste nel cancellare da una lista (contenente inumeri fino a

√n) tutti i multipli dei numeri primi gia scoperti

iniziando dal 2 e dividere n solo per i sopravvissuti.

I Quando l’algoritmo e utilizzato solo per verificare la primalitadel numero n, si interrompe non appena uno dei primi dividen. L’algoritmo in questo caso e l’estensione naturale deiprecedenti.

I La memoria richiesta e pari a√n, ma il tempo si riduce: le

divisioni sono assenti e si compiono circa√nπ(n)

moltiplicazioni. Con il simbolo π(n) si indica il numero deinumeri primi minori di n.

I Esercizio: Scrivere un codice di Octave che realizzi il crivellodi Eratostene. Calcolare i primi 100 primi.

Page 18: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il crivello di Eratostene

I I crivello di Eratostene consente di trovare tutti i primi minoridella radice quadrata di un numero assegnato n e verificarnela primalita.

I Il metodo consiste nel cancellare da una lista (contenente inumeri fino a

√n) tutti i multipli dei numeri primi gia scoperti

iniziando dal 2 e dividere n solo per i sopravvissuti.

I Quando l’algoritmo e utilizzato solo per verificare la primalitadel numero n, si interrompe non appena uno dei primi dividen. L’algoritmo in questo caso e l’estensione naturale deiprecedenti.

I La memoria richiesta e pari a√n, ma il tempo si riduce: le

divisioni sono assenti e si compiono circa√nπ(n)

moltiplicazioni. Con il simbolo π(n) si indica il numero deinumeri primi minori di n.

I Esercizio: Scrivere un codice di Octave che realizzi il crivellodi Eratostene. Calcolare i primi 100 primi.

Page 19: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il crivello di Eratostene

I I crivello di Eratostene consente di trovare tutti i primi minoridella radice quadrata di un numero assegnato n e verificarnela primalita.

I Il metodo consiste nel cancellare da una lista (contenente inumeri fino a

√n) tutti i multipli dei numeri primi gia scoperti

iniziando dal 2 e dividere n solo per i sopravvissuti.

I Quando l’algoritmo e utilizzato solo per verificare la primalitadel numero n, si interrompe non appena uno dei primi dividen. L’algoritmo in questo caso e l’estensione naturale deiprecedenti.

I La memoria richiesta e pari a√n, ma il tempo si riduce: le

divisioni sono assenti e si compiono circa√nπ(n)

moltiplicazioni. Con il simbolo π(n) si indica il numero deinumeri primi minori di n.

I Esercizio: Scrivere un codice di Octave che realizzi il crivellodi Eratostene. Calcolare i primi 100 primi.

Page 20: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi

I Abbiamo gia dimostrato che sono infiniti. Quindi:

limn→∞

π(n) =∞.

I La funzione π(n) e monotona crescente. Con quale velocitava all’infinito?

I Il teorema dei numeri primi (attribuito ad Hadamard e a de laVallee-Poussin) dimostra che si comporta comeπ(n) ∼ n/log(n), cioe:

limn→∞

π(n)

n/log(n)= 1.

I Se chiamiamo pn l’n-esimo numero primo, una formulazioneequivalente e:

pn ∼ n · log(n).

Page 21: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi

I Abbiamo gia dimostrato che sono infiniti. Quindi:

limn→∞

π(n) =∞.

I La funzione π(n) e monotona crescente. Con quale velocitava all’infinito?

I Il teorema dei numeri primi (attribuito ad Hadamard e a de laVallee-Poussin) dimostra che si comporta comeπ(n) ∼ n/log(n), cioe:

limn→∞

π(n)

n/log(n)= 1.

I Se chiamiamo pn l’n-esimo numero primo, una formulazioneequivalente e:

pn ∼ n · log(n).

Page 22: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi

I Abbiamo gia dimostrato che sono infiniti. Quindi:

limn→∞

π(n) =∞.

I La funzione π(n) e monotona crescente. Con quale velocitava all’infinito?

I Il teorema dei numeri primi (attribuito ad Hadamard e a de laVallee-Poussin) dimostra che si comporta comeπ(n) ∼ n/log(n), cioe:

limn→∞

π(n)

n/log(n)= 1.

I Se chiamiamo pn l’n-esimo numero primo, una formulazioneequivalente e:

pn ∼ n · log(n).

Page 23: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi

I Abbiamo gia dimostrato che sono infiniti. Quindi:

limn→∞

π(n) =∞.

I La funzione π(n) e monotona crescente. Con quale velocitava all’infinito?

I Il teorema dei numeri primi (attribuito ad Hadamard e a de laVallee-Poussin) dimostra che si comporta comeπ(n) ∼ n/log(n), cioe:

limn→∞

π(n)

n/log(n)= 1.

I Se chiamiamo pn l’n-esimo numero primo, una formulazioneequivalente e:

pn ∼ n · log(n).

Page 24: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi - cont

I Gauss ha congetturato che π(n) si comporti come la funzioneLi :

Li(n)− Li(2)def=

∫ n

2

dx

log(x).

I In questo caso la derivata (cioe la densita) sarebbe proprio1/log(n). Ma questa ipotesi non e stata mai dimostrata, neconfutata.

Page 25: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Quanto sono densi i numeri primi - cont

I Gauss ha congetturato che π(n) si comporti come la funzioneLi :

Li(n)− Li(2)def=

∫ n

2

dx

log(x).

I In questo caso la derivata (cioe la densita) sarebbe proprio1/log(n). Ma questa ipotesi non e stata mai dimostrata, neconfutata.

Page 26: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze per la criptografia

I La densita dei numeri primi va con l’inverso del logaritmo din. Quindi piu e grande n e piu e difficile trovare dei numeriprimi scegliendo a caso.

ρ(n)def=

π(n)

n∼ 1

log(n).

I Questo significa che se cerchiamo chiavi piu complesse per lacifratura RSA dobbiamo spendere un tempo piu lungo odisporre di una piattaforma di calcolo piu potente.

I Come gia detto l’alternativa di utilizzare metodi non uniformiper scegliere i numeri primi da utilizzare come chiavi riduce lospazio delle chiavi e rende la cifratura meno robusta.

Page 27: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze per la criptografia

I La densita dei numeri primi va con l’inverso del logaritmo din. Quindi piu e grande n e piu e difficile trovare dei numeriprimi scegliendo a caso.

ρ(n)def=

π(n)

n∼ 1

log(n).

I Questo significa che se cerchiamo chiavi piu complesse per lacifratura RSA dobbiamo spendere un tempo piu lungo odisporre di una piattaforma di calcolo piu potente.

I Come gia detto l’alternativa di utilizzare metodi non uniformiper scegliere i numeri primi da utilizzare come chiavi riduce lospazio delle chiavi e rende la cifratura meno robusta.

Page 28: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze per la criptografia

I La densita dei numeri primi va con l’inverso del logaritmo din. Quindi piu e grande n e piu e difficile trovare dei numeriprimi scegliendo a caso.

ρ(n)def=

π(n)

n∼ 1

log(n).

I Questo significa che se cerchiamo chiavi piu complesse per lacifratura RSA dobbiamo spendere un tempo piu lungo odisporre di una piattaforma di calcolo piu potente.

I Come gia detto l’alternativa di utilizzare metodi non uniformiper scegliere i numeri primi da utilizzare come chiavi riduce lospazio delle chiavi e rende la cifratura meno robusta.

Page 29: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il Metodo di FermatI Si basa sul principio che se un numero non e primo, e

esprimibile in forma di prodotto di due numeri a e b (nonnecessariamente primi):

n = a · b.

I Trovare a e b equivale a trovare le loro semisomma (s) esemidifferenza (d): {

sdef= a+b

2 ,

ddef= a−b

2 ;

che si inverte in: {a = s + d ,b = s − d .

I La differenza dei quadrati di s e d eguaglia n:

s2 − d2 = 1/4[(a + b)2 − (a− b)2] = 1/4[4ab] = ab = n.

Page 30: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il Metodo di FermatI Si basa sul principio che se un numero non e primo, e

esprimibile in forma di prodotto di due numeri a e b (nonnecessariamente primi):

n = a · b.I Trovare a e b equivale a trovare le loro semisomma (s) e

semidifferenza (d): {s

def= a+b

2 ,

ddef= a−b

2 ;

che si inverte in: {a = s + d ,b = s − d .

I La differenza dei quadrati di s e d eguaglia n:

s2 − d2 = 1/4[(a + b)2 − (a− b)2] = 1/4[4ab] = ab = n.

Page 31: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Il Metodo di FermatI Si basa sul principio che se un numero non e primo, e

esprimibile in forma di prodotto di due numeri a e b (nonnecessariamente primi):

n = a · b.I Trovare a e b equivale a trovare le loro semisomma (s) e

semidifferenza (d): {s

def= a+b

2 ,

ddef= a−b

2 ;

che si inverte in: {a = s + d ,b = s − d .

I La differenza dei quadrati di s e d eguaglia n:

s2 − d2 = 1/4[(a + b)2 − (a− b)2] = 1/4[4ab] = ab = n.

Page 32: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Algoritmo di Fermat

I L’agoritmo di Fermat, parte dal numero k0 piu piccolo numeroil cui quadrato supera n:{

k20 > n,(k0 − 1)2 < n;

e calcola la differenza del quadrato rispetto ad n (k2 − n).

I Ad ogni passo si incrementa di uno il numero k (k → k + 1) ela procedura si arresta quando k2 − n e un quadrato perfettoe quindi possiamo identificare k con s e k2 − n con d2.

I p = k +√k2 − n, q = k −

√k2 − n

I Esercizio: Scrivere un codice Octave che realizza l’algoritmodi Fermat.

I L’algoritmo richiede pochissima memoria (5 interi) e unnumero di passi che dipende dalla differenza d .

Page 33: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Algoritmo di Fermat

I L’agoritmo di Fermat, parte dal numero k0 piu piccolo numeroil cui quadrato supera n:{

k20 > n,(k0 − 1)2 < n;

e calcola la differenza del quadrato rispetto ad n (k2 − n).

I Ad ogni passo si incrementa di uno il numero k (k → k + 1) ela procedura si arresta quando k2 − n e un quadrato perfettoe quindi possiamo identificare k con s e k2 − n con d2.

I p = k +√k2 − n, q = k −

√k2 − n

I Esercizio: Scrivere un codice Octave che realizza l’algoritmodi Fermat.

I L’algoritmo richiede pochissima memoria (5 interi) e unnumero di passi che dipende dalla differenza d .

Page 34: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Algoritmo di Fermat

I L’agoritmo di Fermat, parte dal numero k0 piu piccolo numeroil cui quadrato supera n:{

k20 > n,(k0 − 1)2 < n;

e calcola la differenza del quadrato rispetto ad n (k2 − n).

I Ad ogni passo si incrementa di uno il numero k (k → k + 1) ela procedura si arresta quando k2 − n e un quadrato perfettoe quindi possiamo identificare k con s e k2 − n con d2.

I p = k +√k2 − n, q = k −

√k2 − n

I Esercizio: Scrivere un codice Octave che realizza l’algoritmodi Fermat.

I L’algoritmo richiede pochissima memoria (5 interi) e unnumero di passi che dipende dalla differenza d .

Page 35: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Algoritmo di Fermat

I L’agoritmo di Fermat, parte dal numero k0 piu piccolo numeroil cui quadrato supera n:{

k20 > n,(k0 − 1)2 < n;

e calcola la differenza del quadrato rispetto ad n (k2 − n).

I Ad ogni passo si incrementa di uno il numero k (k → k + 1) ela procedura si arresta quando k2 − n e un quadrato perfettoe quindi possiamo identificare k con s e k2 − n con d2.

I p = k +√k2 − n, q = k −

√k2 − n

I Esercizio: Scrivere un codice Octave che realizza l’algoritmodi Fermat.

I L’algoritmo richiede pochissima memoria (5 interi) e unnumero di passi che dipende dalla differenza d .

Page 36: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze dell’esistenza dell’algoritmo di Fermat sullacifratura RSA

I Se nell’algoritmo di RSA scegliamo due fattori primi (p e q)vicini tra loro, d sara piccola e quindi l’algoritmo di Fermatfattorizzera n e si arrestera in pochi passi.

I Se invece scegliamo due numeri primi troppo diversi tra loroallora uno dei due sara piccolo ed il metodo dell’ispezionediretta si arrestera in pochi passi.

I Il cifratore deve prevenire da entrambi i possibili attacchi. Neconsegue che la differenza e la somma dei due numeri primi (pe q) devono essere dello stesso ordine di grandezza. Lacardinalita di questo spazio definira la complessita delle chiavi.In pratica basta limitare la scelta di p (e quindi q) ad esempioall’intervallo (1/2

√n, 3/4

√n).

Page 37: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze dell’esistenza dell’algoritmo di Fermat sullacifratura RSA

I Se nell’algoritmo di RSA scegliamo due fattori primi (p e q)vicini tra loro, d sara piccola e quindi l’algoritmo di Fermatfattorizzera n e si arrestera in pochi passi.

I Se invece scegliamo due numeri primi troppo diversi tra loroallora uno dei due sara piccolo ed il metodo dell’ispezionediretta si arrestera in pochi passi.

I Il cifratore deve prevenire da entrambi i possibili attacchi. Neconsegue che la differenza e la somma dei due numeri primi (pe q) devono essere dello stesso ordine di grandezza. Lacardinalita di questo spazio definira la complessita delle chiavi.In pratica basta limitare la scelta di p (e quindi q) ad esempioall’intervallo (1/2

√n, 3/4

√n).

Page 38: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Conseguenze dell’esistenza dell’algoritmo di Fermat sullacifratura RSA

I Se nell’algoritmo di RSA scegliamo due fattori primi (p e q)vicini tra loro, d sara piccola e quindi l’algoritmo di Fermatfattorizzera n e si arrestera in pochi passi.

I Se invece scegliamo due numeri primi troppo diversi tra loroallora uno dei due sara piccolo ed il metodo dell’ispezionediretta si arrestera in pochi passi.

I Il cifratore deve prevenire da entrambi i possibili attacchi. Neconsegue che la differenza e la somma dei due numeri primi (pe q) devono essere dello stesso ordine di grandezza. Lacardinalita di questo spazio definira la complessita delle chiavi.In pratica basta limitare la scelta di p (e quindi q) ad esempioall’intervallo (1/2

√n, 3/4

√n).

Page 39: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Variazioni sulla cifratura RSA

I Una delle idee piu naturali per complicare RSA consistenell’usare una fattorizzazione a tre o piu primi.

n = p1p2p3.

I In realta, la situazione peggiorerebbe per il cifratore, perche ilminore dei fattori sarebbe necessariamente piu piccolo e quindibasterebbe applicare il crivello di Eratostene a tutti i numeriminori della radice cubica di n. Il metodo dell’ispezionerisulterebbe notevolmente semplificato.

I Inoltre anche la minima differenza tra due fattori sarebbe piupiccola, accelerando quindi convergenza del metodo diFermat. Anche in questo caso basterebbe studiare i k minoridi k0 + n1/3.

Page 40: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Variazioni sulla cifratura RSA

I Una delle idee piu naturali per complicare RSA consistenell’usare una fattorizzazione a tre o piu primi.

n = p1p2p3.

I In realta, la situazione peggiorerebbe per il cifratore, perche ilminore dei fattori sarebbe necessariamente piu piccolo e quindibasterebbe applicare il crivello di Eratostene a tutti i numeriminori della radice cubica di n. Il metodo dell’ispezionerisulterebbe notevolmente semplificato.

I Inoltre anche la minima differenza tra due fattori sarebbe piupiccola, accelerando quindi convergenza del metodo diFermat. Anche in questo caso basterebbe studiare i k minoridi k0 + n1/3.

Page 41: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Variazioni sulla cifratura RSA

I Una delle idee piu naturali per complicare RSA consistenell’usare una fattorizzazione a tre o piu primi.

n = p1p2p3.

I In realta, la situazione peggiorerebbe per il cifratore, perche ilminore dei fattori sarebbe necessariamente piu piccolo e quindibasterebbe applicare il crivello di Eratostene a tutti i numeriminori della radice cubica di n. Il metodo dell’ispezionerisulterebbe notevolmente semplificato.

I Inoltre anche la minima differenza tra due fattori sarebbe piupiccola, accelerando quindi convergenza del metodo diFermat. Anche in questo caso basterebbe studiare i k minoridi k0 + n1/3.

Page 42: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 43: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 44: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 45: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 46: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 47: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Metodi indeterminati

I I metodi precedenti consentono di determinare la primalita delnumero n con certezza e consentono anche di determinarealmeno una fattorizzazione.

I Esistono dei criteri che non risolvono con certezza il problemadella primalita, ma che consentono in alcuni casi di escluderla.

I Tali metodi sono basati su condizioni necessarie di primalita,ma non sufficienti.

I I numeri che soddisfano alcuni criteri necessari di primalita manon suffienti di chiamano pseudo-primi

I Il metodo (gia visto) dalla primalita cinese e uno di questi: se2n 6= 1 (mod n) possiamo escludere che n sia primo, ma se larelazione e soddisfatta non possiamo esprimerci.

I Esercizio: scrivere un codice Octave che esegua il test diprimalita cinese.

Page 48: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criterio di Eulero

I Anche questo criterio puo solo escludere la primalita, ma nongarantirla.

I Si basa sul piccolo teorema di Fermat.

I In realta, se per tutti gli a (non solo il 2) an−1 = 1 (mod n) sipuo dire con certezza che n e primo [Bastano i numeri fino ad(n+1)/2].

I Nella realta questo sarebbe molto piu onerosocomputazionalmente del metodo di Eratostene (e perfinodell’ispezione diretta) e quindi si limita il test ad un insiemefinito di a. In tal modo il test garantisce una pseudoprimalita(puo solo escludere la primalita se siamo fortunati). In praticadiviene solo piu accurato del test cinese.

I Per un’ insieme selezionato di numeri a ∈ S , si verifica:

an−12 = ±1 (mod n)

Page 49: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criterio di Eulero

I Anche questo criterio puo solo escludere la primalita, ma nongarantirla.

I Si basa sul piccolo teorema di Fermat.

I In realta, se per tutti gli a (non solo il 2) an−1 = 1 (mod n) sipuo dire con certezza che n e primo [Bastano i numeri fino ad(n+1)/2].

I Nella realta questo sarebbe molto piu onerosocomputazionalmente del metodo di Eratostene (e perfinodell’ispezione diretta) e quindi si limita il test ad un insiemefinito di a. In tal modo il test garantisce una pseudoprimalita(puo solo escludere la primalita se siamo fortunati). In praticadiviene solo piu accurato del test cinese.

I Per un’ insieme selezionato di numeri a ∈ S , si verifica:

an−12 = ±1 (mod n)

Page 50: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criterio di Eulero

I Anche questo criterio puo solo escludere la primalita, ma nongarantirla.

I Si basa sul piccolo teorema di Fermat.

I In realta, se per tutti gli a (non solo il 2) an−1 = 1 (mod n) sipuo dire con certezza che n e primo [Bastano i numeri fino ad(n+1)/2].

I Nella realta questo sarebbe molto piu onerosocomputazionalmente del metodo di Eratostene (e perfinodell’ispezione diretta) e quindi si limita il test ad un insiemefinito di a. In tal modo il test garantisce una pseudoprimalita(puo solo escludere la primalita se siamo fortunati). In praticadiviene solo piu accurato del test cinese.

I Per un’ insieme selezionato di numeri a ∈ S , si verifica:

an−12 = ±1 (mod n)

Page 51: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criterio di Eulero

I Anche questo criterio puo solo escludere la primalita, ma nongarantirla.

I Si basa sul piccolo teorema di Fermat.

I In realta, se per tutti gli a (non solo il 2) an−1 = 1 (mod n) sipuo dire con certezza che n e primo [Bastano i numeri fino ad(n+1)/2].

I Nella realta questo sarebbe molto piu onerosocomputazionalmente del metodo di Eratostene (e perfinodell’ispezione diretta) e quindi si limita il test ad un insiemefinito di a. In tal modo il test garantisce una pseudoprimalita(puo solo escludere la primalita se siamo fortunati). In praticadiviene solo piu accurato del test cinese.

I Per un’ insieme selezionato di numeri a ∈ S , si verifica:

an−12 = ±1 (mod n)

Page 52: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criterio di Eulero

I Anche questo criterio puo solo escludere la primalita, ma nongarantirla.

I Si basa sul piccolo teorema di Fermat.

I In realta, se per tutti gli a (non solo il 2) an−1 = 1 (mod n) sipuo dire con certezza che n e primo [Bastano i numeri fino ad(n+1)/2].

I Nella realta questo sarebbe molto piu onerosocomputazionalmente del metodo di Eratostene (e perfinodell’ispezione diretta) e quindi si limita il test ad un insiemefinito di a. In tal modo il test garantisce una pseudoprimalita(puo solo escludere la primalita se siamo fortunati). In praticadiviene solo piu accurato del test cinese.

I Per un’ insieme selezionato di numeri a ∈ S , si verifica:

an−12 = ±1 (mod n)

Page 53: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sul piccolo teorema di Fermat

I Si possono scegliere a caso dei numeri ed eseguire il test diFermat su di essi. Chiameremo questo criterio ”Ispezionecasuale alla Fermat di dimensione m” (m numero di valoritestati).

an−1 ≡ 1 ( mod n ).

I I numeri di Carmichael resistono a qualunque test di Fermat(esclusi i divisori dello zero cioe di n). Per definizione unnumero di Carmichael soddisfa le seguenti eguaglianze:

n : ∀a < n : an ≡ a ( mod n ).

I Il piu piccolo numero di Carmichael e 341=11x31.

I Esercizio verificare con Octave che 341 e di Carmichael.Quanto fa 1131 e 3111 ? Che succede se a e un divisore di341?

Page 54: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sul piccolo teorema di Fermat

I Si possono scegliere a caso dei numeri ed eseguire il test diFermat su di essi. Chiameremo questo criterio ”Ispezionecasuale alla Fermat di dimensione m” (m numero di valoritestati).

an−1 ≡ 1 ( mod n ).

I I numeri di Carmichael resistono a qualunque test di Fermat(esclusi i divisori dello zero cioe di n). Per definizione unnumero di Carmichael soddisfa le seguenti eguaglianze:

n : ∀a < n : an ≡ a ( mod n ).

I Il piu piccolo numero di Carmichael e 341=11x31.

I Esercizio verificare con Octave che 341 e di Carmichael.Quanto fa 1131 e 3111 ? Che succede se a e un divisore di341?

Page 55: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sul piccolo teorema di Fermat

I Si possono scegliere a caso dei numeri ed eseguire il test diFermat su di essi. Chiameremo questo criterio ”Ispezionecasuale alla Fermat di dimensione m” (m numero di valoritestati).

an−1 ≡ 1 ( mod n ).

I I numeri di Carmichael resistono a qualunque test di Fermat(esclusi i divisori dello zero cioe di n). Per definizione unnumero di Carmichael soddisfa le seguenti eguaglianze:

n : ∀a < n : an ≡ a ( mod n ).

I Il piu piccolo numero di Carmichael e 341=11x31.

I Esercizio verificare con Octave che 341 e di Carmichael.Quanto fa 1131 e 3111 ? Che succede se a e un divisore di341?

Page 56: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sul piccolo teorema di Fermat

I Si possono scegliere a caso dei numeri ed eseguire il test diFermat su di essi. Chiameremo questo criterio ”Ispezionecasuale alla Fermat di dimensione m” (m numero di valoritestati).

an−1 ≡ 1 ( mod n ).

I I numeri di Carmichael resistono a qualunque test di Fermat(esclusi i divisori dello zero cioe di n). Per definizione unnumero di Carmichael soddisfa le seguenti eguaglianze:

n : ∀a < n : an ≡ a ( mod n ).

I Il piu piccolo numero di Carmichael e 341=11x31.

I Esercizio verificare con Octave che 341 e di Carmichael.Quanto fa 1131 e 3111 ? Che succede se a e un divisore di341?

Page 57: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unitaI Esistono sempre due radici banali dell’unita:{

12 ≡ 1 (mod n),(n − 1)2 = n2 − 2n + 1 ≡ 1 (mod n);

I x2 = 1 equivale a x2 − 1 = 0. Se n e primo, Zn e un campo;(x − 1)(x + 1) = 0 implica che uno dei due fattori sia nullo edunque le due soluzioni banali sono le uniche.

I Se n non e primo, possono esistere altre soluzioni. Inparticolare se n = pq (con p e q primi). x2 = 1 equivale (th.dei resti cinese) al sistema:{

x2 ≡ 1 (mod p),x2 ≡ 1 (mod q);

che a sua volta equivale a{x ≡ 1, p − 1 (mod p),x ≡ 1, q − 1 (mod q);

Page 58: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unitaI Esistono sempre due radici banali dell’unita:{

12 ≡ 1 (mod n),(n − 1)2 = n2 − 2n + 1 ≡ 1 (mod n);

I x2 = 1 equivale a x2 − 1 = 0. Se n e primo, Zn e un campo;(x − 1)(x + 1) = 0 implica che uno dei due fattori sia nullo edunque le due soluzioni banali sono le uniche.

I Se n non e primo, possono esistere altre soluzioni. Inparticolare se n = pq (con p e q primi). x2 = 1 equivale (th.dei resti cinese) al sistema:{

x2 ≡ 1 (mod p),x2 ≡ 1 (mod q);

che a sua volta equivale a{x ≡ 1, p − 1 (mod p),x ≡ 1, q − 1 (mod q);

Page 59: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unitaI Esistono sempre due radici banali dell’unita:{

12 ≡ 1 (mod n),(n − 1)2 = n2 − 2n + 1 ≡ 1 (mod n);

I x2 = 1 equivale a x2 − 1 = 0. Se n e primo, Zn e un campo;(x − 1)(x + 1) = 0 implica che uno dei due fattori sia nullo edunque le due soluzioni banali sono le uniche.

I Se n non e primo, possono esistere altre soluzioni. Inparticolare se n = pq (con p e q primi). x2 = 1 equivale (th.dei resti cinese) al sistema:{

x2 ≡ 1 (mod p),x2 ≡ 1 (mod q);

che a sua volta equivale a{x ≡ 1, p − 1 (mod p),x ≡ 1, q − 1 (mod q);

Page 60: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Le radici quadrate non banali dell’unita

I Quindi ci sono quattro soluzioni distinte di cui due sono quellebanali:

{x ≡ 1 (mod p),x ≡ 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ q − 1 (mod q);

e corrispindono alle soluzioni x = 1 e x = n− 1 = pq − 1. Mave ne sono altre due sono non banali:{

x ≡ 1 (mod p),x ≡ q − 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ 1 (mod q).

I Conoscendo una delle due radici non banali:

x21 ≡ 1 con 1 < x < n − 1.

I si ricava facilmente anche l’altra (x2 = n − x1):

x22 = (n − x1)2 = n2 − 2nx1 + x21 ≡ 1.

Page 61: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Le radici quadrate non banali dell’unita

I Quindi ci sono quattro soluzioni distinte di cui due sono quellebanali:

{x ≡ 1 (mod p),x ≡ 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ q − 1 (mod q);

e corrispindono alle soluzioni x = 1 e x = n− 1 = pq − 1. Mave ne sono altre due sono non banali:{

x ≡ 1 (mod p),x ≡ q − 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ 1 (mod q).

I Conoscendo una delle due radici non banali:

x21 ≡ 1 con 1 < x < n − 1.

I si ricava facilmente anche l’altra (x2 = n − x1):

x22 = (n − x1)2 = n2 − 2nx1 + x21 ≡ 1.

Page 62: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Le radici quadrate non banali dell’unita

I Quindi ci sono quattro soluzioni distinte di cui due sono quellebanali:

{x ≡ 1 (mod p),x ≡ 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ q − 1 (mod q);

e corrispindono alle soluzioni x = 1 e x = n− 1 = pq − 1. Mave ne sono altre due sono non banali:{

x ≡ 1 (mod p),x ≡ q − 1 (mod q);

{x ≡ p − 1 (mod p),x ≡ 1 (mod q).

I Conoscendo una delle due radici non banali:

x21 ≡ 1 con 1 < x < n − 1.

I si ricava facilmente anche l’altra (x2 = n − x1):

x22 = (n − x1)2 = n2 − 2nx1 + x21 ≡ 1.

Page 63: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Decomposizione tramite una radice quadrata dell’unita

I Basta conoscere una radice quadrata non banale dell’unita perdecomporre n:

x21 ≡ 1⇔ (x1 − 1)(x1 + 1) ≡ 0 (mod n).

I che in Z diviene:

(x1 − 1)(x1 + 1) = kn.

I Per il teorema dell’ unicita della decomposizione, uno deifattori x1 ± 1 e multiplo di p e l’altro di q.

I Quindi per calcolare p (o q) basta calcolare il massimocomune divisore tra x1 − 1 ed n.{

q = ((x1 − 1), n),p = ((x1 + 1), n).

Page 64: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Decomposizione tramite una radice quadrata dell’unita

I Basta conoscere una radice quadrata non banale dell’unita perdecomporre n:

x21 ≡ 1⇔ (x1 − 1)(x1 + 1) ≡ 0 (mod n).

I che in Z diviene:

(x1 − 1)(x1 + 1) = kn.

I Per il teorema dell’ unicita della decomposizione, uno deifattori x1 ± 1 e multiplo di p e l’altro di q.

I Quindi per calcolare p (o q) basta calcolare il massimocomune divisore tra x1 − 1 ed n.{

q = ((x1 − 1), n),p = ((x1 + 1), n).

Page 65: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Decomposizione tramite una radice quadrata dell’unita

I Basta conoscere una radice quadrata non banale dell’unita perdecomporre n:

x21 ≡ 1⇔ (x1 − 1)(x1 + 1) ≡ 0 (mod n).

I che in Z diviene:

(x1 − 1)(x1 + 1) = kn.

I Per il teorema dell’ unicita della decomposizione, uno deifattori x1 ± 1 e multiplo di p e l’altro di q.

I Quindi per calcolare p (o q) basta calcolare il massimocomune divisore tra x1 − 1 ed n.{

q = ((x1 − 1), n),p = ((x1 + 1), n).

Page 66: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Decomposizione tramite una radice quadrata dell’unita

I Basta conoscere una radice quadrata non banale dell’unita perdecomporre n:

x21 ≡ 1⇔ (x1 − 1)(x1 + 1) ≡ 0 (mod n).

I che in Z diviene:

(x1 − 1)(x1 + 1) = kn.

I Per il teorema dell’ unicita della decomposizione, uno deifattori x1 ± 1 e multiplo di p e l’altro di q.

I Quindi per calcolare p (o q) basta calcolare il massimocomune divisore tra x1 − 1 ed n.{

q = ((x1 − 1), n),p = ((x1 + 1), n).

Page 67: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unita - cont

I Da quanto visto, e possibile definire un criterio dipseudoprimalita con i seguenti passi:

I Si scelgono a caso m numeri maggiori di n/2 e si elevano alquadrato (analogamente al metodo di Fermat).

I Se nessuno dei numeri e congruo all’unita il numero epseudoprimo.

I Se scopriamo una radice dell’unita possiamo decomporre n equindi decifrare RSA.

I Possiamo anche combinare i due metodi. Si eleva k alquadrato, poi se e congruo all’unita o se differisce da n per unquadrato perfetto, il numero n e scomposto.

Page 68: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unita - cont

I Da quanto visto, e possibile definire un criterio dipseudoprimalita con i seguenti passi:

I Si scelgono a caso m numeri maggiori di n/2 e si elevano alquadrato (analogamente al metodo di Fermat).

I Se nessuno dei numeri e congruo all’unita il numero epseudoprimo.

I Se scopriamo una radice dell’unita possiamo decomporre n equindi decifrare RSA.

I Possiamo anche combinare i due metodi. Si eleva k alquadrato, poi se e congruo all’unita o se differisce da n per unquadrato perfetto, il numero n e scomposto.

Page 69: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unita - cont

I Da quanto visto, e possibile definire un criterio dipseudoprimalita con i seguenti passi:

I Si scelgono a caso m numeri maggiori di n/2 e si elevano alquadrato (analogamente al metodo di Fermat).

I Se nessuno dei numeri e congruo all’unita il numero epseudoprimo.

I Se scopriamo una radice dell’unita possiamo decomporre n equindi decifrare RSA.

I Possiamo anche combinare i due metodi. Si eleva k alquadrato, poi se e congruo all’unita o se differisce da n per unquadrato perfetto, il numero n e scomposto.

Page 70: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unita - cont

I Da quanto visto, e possibile definire un criterio dipseudoprimalita con i seguenti passi:

I Si scelgono a caso m numeri maggiori di n/2 e si elevano alquadrato (analogamente al metodo di Fermat).

I Se nessuno dei numeri e congruo all’unita il numero epseudoprimo.

I Se scopriamo una radice dell’unita possiamo decomporre n equindi decifrare RSA.

I Possiamo anche combinare i due metodi. Si eleva k alquadrato, poi se e congruo all’unita o se differisce da n per unquadrato perfetto, il numero n e scomposto.

Page 71: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Criteri basati sulle radici quadrate dell’unita - cont

I Da quanto visto, e possibile definire un criterio dipseudoprimalita con i seguenti passi:

I Si scelgono a caso m numeri maggiori di n/2 e si elevano alquadrato (analogamente al metodo di Fermat).

I Se nessuno dei numeri e congruo all’unita il numero epseudoprimo.

I Se scopriamo una radice dell’unita possiamo decomporre n equindi decifrare RSA.

I Possiamo anche combinare i due metodi. Si eleva k alquadrato, poi se e congruo all’unita o se differisce da n per unquadrato perfetto, il numero n e scomposto.

Page 72: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Soluzione esercizio Spia

I f(12)=6, f(10)=5, f(8)=4, f(6)=3, f(4)=7.

I La soluzione piu semplice e contare il numero di letterenecessario a scrivere il numero gridato dalla sentinella.

I dodici ha 6 lettere; dieci ne ha 5, otto ne ha quattro, sei ne hatre; ma quattro ne ha 7.

I Ovviamente esistono infiniti algoritmi che risolvono ilproblema, anche con algoritmi polinomiali (teorema diLagrange). Ma questo e sufficientemente semplice da esserericordato e calcolato rapidamente.

I L’esempio della spia mostra anche come un algoritmoapparentemente complicato (contare il numreo di lettere checompongono il numero) possa condurre, in casi particolari, asoluzioni semplici.

Page 73: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Soluzione esercizio Spia

I f(12)=6, f(10)=5, f(8)=4, f(6)=3, f(4)=7.

I La soluzione piu semplice e contare il numero di letterenecessario a scrivere il numero gridato dalla sentinella.

I dodici ha 6 lettere; dieci ne ha 5, otto ne ha quattro, sei ne hatre; ma quattro ne ha 7.

I Ovviamente esistono infiniti algoritmi che risolvono ilproblema, anche con algoritmi polinomiali (teorema diLagrange). Ma questo e sufficientemente semplice da esserericordato e calcolato rapidamente.

I L’esempio della spia mostra anche come un algoritmoapparentemente complicato (contare il numreo di lettere checompongono il numero) possa condurre, in casi particolari, asoluzioni semplici.

Page 74: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Soluzione esercizio Spia

I f(12)=6, f(10)=5, f(8)=4, f(6)=3, f(4)=7.

I La soluzione piu semplice e contare il numero di letterenecessario a scrivere il numero gridato dalla sentinella.

I dodici ha 6 lettere; dieci ne ha 5, otto ne ha quattro, sei ne hatre; ma quattro ne ha 7.

I Ovviamente esistono infiniti algoritmi che risolvono ilproblema, anche con algoritmi polinomiali (teorema diLagrange). Ma questo e sufficientemente semplice da esserericordato e calcolato rapidamente.

I L’esempio della spia mostra anche come un algoritmoapparentemente complicato (contare il numreo di lettere checompongono il numero) possa condurre, in casi particolari, asoluzioni semplici.

Page 75: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Soluzione esercizio Spia

I f(12)=6, f(10)=5, f(8)=4, f(6)=3, f(4)=7.

I La soluzione piu semplice e contare il numero di letterenecessario a scrivere il numero gridato dalla sentinella.

I dodici ha 6 lettere; dieci ne ha 5, otto ne ha quattro, sei ne hatre; ma quattro ne ha 7.

I Ovviamente esistono infiniti algoritmi che risolvono ilproblema, anche con algoritmi polinomiali (teorema diLagrange). Ma questo e sufficientemente semplice da esserericordato e calcolato rapidamente.

I L’esempio della spia mostra anche come un algoritmoapparentemente complicato (contare il numreo di lettere checompongono il numero) possa condurre, in casi particolari, asoluzioni semplici.

Page 76: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Soluzione esercizio Spia

I f(12)=6, f(10)=5, f(8)=4, f(6)=3, f(4)=7.

I La soluzione piu semplice e contare il numero di letterenecessario a scrivere il numero gridato dalla sentinella.

I dodici ha 6 lettere; dieci ne ha 5, otto ne ha quattro, sei ne hatre; ma quattro ne ha 7.

I Ovviamente esistono infiniti algoritmi che risolvono ilproblema, anche con algoritmi polinomiali (teorema diLagrange). Ma questo e sufficientemente semplice da esserericordato e calcolato rapidamente.

I L’esempio della spia mostra anche come un algoritmoapparentemente complicato (contare il numreo di lettere checompongono il numero) possa condurre, in casi particolari, asoluzioni semplici.

Page 77: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Nuovi esercizi

I Scrivere un codice Octave che esegua i crivello di Eratostene.

I Scrivere codice Octave che calcola una potenza di un numero(modulo n) nel minor numero di passi possibile.

I Scrivere un codice che verifichi la condizione dipseudoprimalita di Fermat con i primi n1/4 numeri primi.

Page 78: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Nuovi esercizi

I Scrivere un codice Octave che esegua i crivello di Eratostene.

I Scrivere codice Octave che calcola una potenza di un numero(modulo n) nel minor numero di passi possibile.

I Scrivere un codice che verifichi la condizione dipseudoprimalita di Fermat con i primi n1/4 numeri primi.

Page 79: Primalit a - gordion.casaccia.enea.itgordion.casaccia.enea.it/SicurezzaInformatica/Lectures/Lesson14... · bisogna trovare numeri primi molto grandi. ... l’attaccante si concentra

Nuovi esercizi

I Scrivere un codice Octave che esegua i crivello di Eratostene.

I Scrivere codice Octave che calcola una potenza di un numero(modulo n) nel minor numero di passi possibile.

I Scrivere un codice che verifichi la condizione dipseudoprimalita di Fermat con i primi n1/4 numeri primi.


Recommended