CTX - Lecture Notes Summary
01 - Introduzione
Informazioni Lezione
Cosa Studia la Crittografia?
Cifrario di Cesare
Cifratura a Permutazione
Possibili Raffinazioni
Cifrario di Vernam
Crittografia Moderna
Funzione Trappola
Complessità di un Algoritmo
02 - Concetti di Divisibilità
Informazioni Lezione
Divisibilità
Anelli Euclidei
Massimo Comun Divisore
MCD e Ideali
Ideali Principali
MCD come Ideale
Numeri Coprimi e Identità di Bézut
Irriducibilità e Primalità
Elementi Irridicubili
Elementi irriducibili in \(\mathbb{K}[X]\)
Elementi Primi
Primo Teorema di Euclide
Primo \(\implies\) Irriducibile
Irriducibile \(\implies\) Primo
Teorema Fondamentale dell'Aritmetica
Esistenza
Unicità
03 - Complessità Computazionale
Informazioni Lezione
Numeri di Fibonacci
Proprietà dei Numeri di Fibonacci
\(F_n = \frac{\alpha^n - \alpha'^n}{\sqrt{5}} \quad \forall n\)
\(F_n > \alpha^{n-2} \quad \forall n \geq 3\)
\(MCD(F_{n+1}, F_{n+2}) = 1 \quad \forall n\)
\(\alpha^n = F_n \alpha + F_{n-1} \quad \forall n \geq 2\)
Notazione O-Grande
Esempio
Scrittura Posizionale
Lunghezza e grandezza di un numero
Come Pensiamo ai Numeri
Complessità di un Algoritmo
Complessità Polinomiale ed Esponenziale
Complessità Operazioni Elementari
Complessità Operazioni Non Elementari
Massimo Comun Divisore
Fattoriale
Prodotto tra Interi
Prodotto tra Polinomi
Idendità di Bézout
04 - Congruenze
Informazioni Lezione
Elementi Invertibili in \(\mathbb{Z}_n\)
Divisori dello \(0\) in \(\mathbb{Z}_n\)
Calcolo dell'inverso in \(\mathbb{Z}_n\)
Congruenze di Primo Grado
Esistenza di Soluzioni
Condizione Necessaria
Condizione Sufficiente
Enumerare le Soluzioni
Teoremi
Piccolo Teorema di Fermat
Dimostrazione 1
Dimostrazione 2
Corollario: Calcolo delle potenze
Teorema Cinese dei Resti
Condivisione di un Segreto
Caso specifico \(s = 3\)
Funzionamento
Analisi
Caso generale \(s > 3\)
Funzionamento
Analisi
05 - Funzione di Eulero
Informazioni Lezione
Funzioni Moltiplicative
La funzione di Eulero è Moltiplicativa
Calcolo di \(\varphi(n)\)
Caso 1: \(n = p\)
Caso 2: \(n = p^a\)
Caso 3: \(n = p_1^{a_1}p_2^{a_2}...p_h^{a_h}\)
Formula Generale
Teorema \(\sum_{d | n} \varphi(d) = n\)
Teorema di Eulero
Dimostrazione
Caso 1: \(n = p^a\)
Caso 2: \(n = p_1^{m_1}p_2^{m_2}...p_h^{m_h}\)
Corollario
06 - Numeri Particolari
Informazioni Lezione
Esponenziazione Modulare
Algoritmo Iterativo
Algoritmo Ricorsivo
Fattorizzazione di Numeri Particolari
Numeri di Mersenne
Numeri di Fermat
Proprietà dei Numeri di Fermat
I numeri primi sono infiniti (Duh!)
Numeri di Fermat e Poligoni Regolari
Algoritmo di Fermat
Esempio
Teorema di Wilson
Numeri Perfetti
Numeri Perfetti e Primi di Mersenne
07 - Cifrari Classici
Informazioni Lezione
Modello Matematico di Crittosistema
Cifrari Monoalfabetici
Cifrario di Cesare
Analisi del Cifrario di Cesare
Cifrari Affini
Numero di chiavi
Crittoanalisi dei cifrari affini
Cifrari Polialfabetici
Cifrario di Hill
Inversa di una Matrice a Coefficienti in un Anello
Esempio di Utilizzo
Crittoanalisi
Esempio: Sistemi Lineari in \(\mathbb{Z}_{26}\)
08 - Cifrari a Chiave Pubblica I
Informazioni Lezione
Funzioni Trappola
Esempio di Funzione Univoca
Cifrari Esponenziali
Correttezza
Sicurezza
Logaritmo Discreto
Baby Steps, Giant Steps
Diffi-Hellman Key Exchange
Crittografia a Chiave Pubblica
Calcolo Radice Quadrata
09 - Cifrari a Chiave Pubblica II
Informazioni Lezione
Sistema RSA
Correttezza RSA
Sicurezza RSA
Conoscere \(\varphi(n_i) \implies\) Fattorizzare \(n_i\)
È possibile calcolare \(d\) senza \(\varphi(n_i)\)?
Algoritmi Deterministici e Algoritmi Probabilistici
Algoritmo probabilistico che calcola \(\varphi(n)\) dato \(d\)
Firma Digitale con RSA
Funziona?
10 - Cifrari a Chiave Pubblica III
Lecture Info
Problema dello Zaino (Knapsack)
Esempi
Digressione: \(\mathbb{P}\) vs \(\mathbb{NP}\)
Istanze particolari: successioni supercrescenti
Cifrario di Merkle-Hellman
Il sistema è sicuro?
0-Knowledge Proofs
Esempio: Logaritmo discreto