• Non ci sono risultati.

Tesina n. 1:

N/A
N/A
Protected

Academic year: 2021

Condividi "Tesina n. 1:"

Copied!
1
0
0

Testo completo

(1)

Tesina n. 1:

Costruire un programma che

- accetta in input dall’utente un numero di cifre decimali n

- sceglie random un numero naturale p di n cifre decimali, e lo testi con il test di primalità di Rabin-Miller (il test deve essere ripetuto un numero k di volte, con k indicato dall’utente); se il test non è superato, ripetere la scelta random fino ad ottenere un numero p che superi il test e sia dichiarato “primo”

- trova una radice primitiva a modulo p (algoritmo di Gauss)

- basandosi sui valori di a,p, implementa un sistema crittografico di El-Gamal (l’utente immette un messaggio numerico x compreso fra 1 e (p-1) e il programma calcola il messaggio cifrato y, verificando che la decifratura di y sia proprio x)

(per calcolare la riduzione delle potenze modulo un intero, implementare la routine di esponenziazione modulare)

Prova orale:

1) Esporre almeno 2 dei seguenti argomenti:

- Proprietà delle operazioni di somma e prodotto in Z

n

- Numeri di Fibonacci e complessità dell’algoritmo delle divisioni successive - Sottogruppi di un gruppo e Teorema di Lagrange

- Sottogruppo ciclico, Teorema di Eulero-Fermat e Piccolo Teorema di Fermat 2) Esporre almeno 1 dei seguenti argomenti:

- Test di primalità ingenuo e test di primalità di Wilson - Test di primalità probabilistico di Rabin-Miller

3) Esporre almeno 2 dei seguenti argomenti:

- Algoritmo di Gauss per il calcolo di una radice primitiva modulo (n primo)

- Algoritmo per il calcolo della parte intera della radice n-esima, e test per le potenze perfette

- Algoritmo di fattorizzazione di Pollard - Algoritmo di fattorizzazione di Fermat 4) Esporre almeno 2 dei seguenti argomenti:

- Sistema crittografico RSA

- Sistema crittografico di ElGamal - Scambio di chiavi di Diffie-Hellman

5) Esporre almeno 2 dei seguenti argomenti:

- Codici

- Disegni e 2 disegni

- Piani proiettivi e quadrati latini ortogonali

(2)

Tesina n. 2:

Costruire un programma che

- accetta in input dall’utente un numero di cifre decimali n

- sceglie random un numero naturale p di n cifre decimali, e lo testi con il test di primalità di Rabin-Miller (il test deve essere ripetuto un numero k di volte, con k indicato dall’utente); se il test non è superato, ripetere la scelta random fino ad ottenere un numero p che superi il test e sia dichiarato “primo”

- trova una radice primitiva a modulo p (algoritmo di Gauss)

- basandosi sui valori di a,p, implementa un sistema di scambio di chiavi di Diffie-Helmann (l’utente A immette un numero x, l’utente B immette un numero y, il programma calcola separatamente la chiave di A e la chiave di B e verifica che siano effettivamente uguali)

(per calcolare la riduzione delle potenze modulo un intero, implementare la routine di esponenziazione modulare)

Prova orale:

1) Esporre almeno 2 dei seguenti argomenti:

- Proprietà delle operazioni di somma e prodotto in Z

n

- Numeri di Fibonacci e complessità dell’algoritmo delle divisioni successive - Sottogruppi di un gruppo e Teorema di Lagrange

- Sottogruppo ciclico, Teorema di Eulero-Fermat e Piccolo Teorema di Fermat 2) Esporre almeno 1 dei seguenti argomenti:

- Test di primalità ingenuo e test di primalità di Wilson - Test di primalità probabilistico di Rabin-Miller

3) Esporre almeno 2 dei seguenti argomenti:

- Algoritmo di Gauss per il calcolo di una radice primitiva modulo (n primo)

- Algoritmo per il calcolo della parte intera della radice n-esima, e test per le potenze perfette

- Algoritmo di fattorizzazione di Pollard - Algoritmo di fattorizzazione di Fermat 4) Esporre almeno 2 dei seguenti argomenti:

- Sistema crittografico RSA

- Sistema crittografico di ElGamal - Scambio di chiavi di Diffie-Hellman

5) Esporre almeno 2 dei seguenti argomenti:

- Codici

- Disegni e 2 disegni

- Piani proiettivi e quadrati latini ortogonali

(3)

Tesina n. 3:

Costruire un programma che

- accetta in input un numero naturale n>1

- cerca un fattore non banale di n con l’algoritmo di fattorizzazione di Fermat (per verificare se un numero è quadrato perfetto, implementare la routine che testa se un numero è potenza m-esima, dove l’esponente m è fissato ma generico, e applicarla per m=2)

- cerca un fattore non banale di n con l’algoritmo di fattorizzazione  di Pollard (renderlo flessibile rispetto alla scelta del “seme” e del polinomio dai quali è generata la successione numerica)

Prova orale:

1) Esporre almeno 2 dei seguenti argomenti:

- Proprietà delle operazioni di somma e prodotto in Z

n

- Numeri di Fibonacci e complessità dell’algoritmo delle divisioni successive - Sottogruppi di un gruppo e Teorema di Lagrange

- Sottogruppo ciclico, Teorema di Eulero-Fermat e Piccolo Teorema di Fermat 2) Esporre almeno 1 dei seguenti argomenti:

- Test di primalità ingenuo e test di primalità di Wilson - Test di primalità probabilistico di Rabin-Miller

3) Esporre almeno 2 dei seguenti argomenti:

- Algoritmo di Gauss per il calcolo di una radice primitiva modulo (n primo)

- Algoritmo per il calcolo della parte intera della radice n-esima, e test per le potenze perfette

- Algoritmo di fattorizzazione di Pollard - Algoritmo di fattorizzazione di Fermat 4) Esporre almeno 2 dei seguenti argomenti:

- Sistema crittografico RSA

- Sistema crittografico di ElGamal - Scambio di chiavi di Diffie-Hellman

5) Esporre almeno 2 dei seguenti argomenti:

- Codici

- Disegni e 2 disegni

- Piani proiettivi e quadrati latini ortogonali

(4)

Tesina n. 4:

Costruire un programma che

- accetta in input dall’utente un numero di cifre decimali n

- sceglie random un numero naturale p di n cifre decimali, e lo testi con il test di primalità di Rabin-Miller (il test deve essere ripetuto un numero k di volte, con k indicato dall’utente); se il test non è superato, ripetere la scelta random fino ad ottenere un numero p che superi il test e sia dichiarato “primo”

- ripete il procedimento precedente per trovare un altro numero q di n cifre decimali da dichiarare “primo”

- basandosi sui valori di p,q, implemen un sistema crittografico RSA (sono calcolate chiave pubblica e privata, e quando l’utente immette un messaggio numerico x, il programma calcola il messaggio cifrato y, verificando che la decifratura di y sia proprio x)

(per calcolare la riduzione delle potenze modulo un intero, implementare la routine di esponenziazione modulare)

Prova orale:

1) Esporre almeno 2 dei seguenti argomenti:

- Proprietà delle operazioni di somma e prodotto in Z

n

- Numeri di Fibonacci e complessità dell’algoritmo delle divisioni successive - Sottogruppi di un gruppo e Teorema di Lagrange

- Sottogruppo ciclico, Teorema di Eulero-Fermat e Piccolo Teorema di Fermat 2) Esporre almeno 1 dei seguenti argomenti:

- Test di primalità ingenuo e test di primalità di Wilson - Test di primalità probabilistico di Rabin-Miller

3) Esporre almeno 2 dei seguenti argomenti:

- Algoritmo di Gauss per il calcolo di una radice primitiva modulo (n primo)

- Algoritmo per il calcolo della parte intera della radice n-esima, e test per le potenze perfette

- Algoritmo di fattorizzazione di Pollard - Algoritmo di fattorizzazione di Fermat 4) Esporre almeno 2 dei seguenti argomenti:

- Sistema crittografico RSA

- Sistema crittografico di ElGamal - Scambio di chiavi di Diffie-Hellman

5) Esporre almeno 2 dei seguenti argomenti:

- Codici

- Disegni e 2 disegni

- Piani proiettivi e quadrati latini ortogonali

Riferimenti

Documenti correlati

Aggiungendo un arco possono succedere due fatti alterna- tivi: o l’arco congiunge due componenti connesse diverse, abbassando di uno il numero di componenti connesse, oppure

[r]

[r]

[r]

In effetti storicamente Miller (1977) implementò per primo il test, ma avendo come scopo la costruzione di un test di primalità deterministico di

Se eseguiamo il test k volte sempre con lo stesso input, con k scelte indipendenti del valore casuale a, e se tutte le volte n supera il test positivamente con output “n è primo ”

Quindi per trovare un numero primo di un fissato numero n di cifre (in base 10), si può scegliere casualmente un numero di n cifre, sottoporlo a un “test di primalità” e se il test

In effetti storicamente Miller (1977) implementò per primo il test, ma avendo come scopo la costruzione di un test di primalità deterministico di