# Crittografia/La matematica che devi conoscere

Crittografia
Copertina Tutti i moduli · Sviluppo
    Copertina
Parte I: Introduzione alla Crittografia
* Introduzione alla crittografia
* Storia della crittografia
** Crittografia classica
** Crittografia medievale
** Crittografia dal 1800 alla seconda guerra mondiale
** Crittografia durante la seconda guerra mondiale
** Crittografia contemporanea
** Crittografia nella cultura popolare
** Linea temporale degli eventi importanti
* Concetti fondamentali
** Principio di Kerckhoffs
** Obiettivi della crittografia
** Obiettivi della crittanalisi
** Il ruolo della crittografia nella sicurezza informatica
** Cifrature simmetriche
** Cifrature asimmetriche
** Funzioni Hash
** Distribuzione e autenticazione della chiave
** Difetti e debolezze comuni
Parte II: Progettare cifrari
* Principi base nella progettazione
* Piccoli segreti nascondono segreti più grandi
* algoritmi aperti e il valore del Peer-Review
* Pensa come un crittoanalista
* La matematica che devi conoscere
* La sicurezza informatica non è solo la cifratura
* Un codice non violato non è necessariamente non violabile
Parte III: Violare cifrature
* I principi base nel violare cifrari
* Debolezze
** La proporzionalità della segretezza
*** La lunghezza della chiave
*** Qualità della sorgente casuale
*** Gli effetti del testo in chiaro sul testo cifrato
** Debolezze statistiche
** Implementazioni errate
** Peer-review non adeguato
** Ingegneria sociale e coercizione
* Attacchi
** Attacco di forza bruta
** Analisi della frequenza
** Indice delle coincidenze
** Crittanalisi lineare
** Crittanalisi differenziale
** Attacco incontro nel mezzo
* Come furono violate le cifrature storiche
** Violare i cifrari a trasposizione
** Violare il cifrario di Cesare
** Violare la macchina Enigma
** Violare il cifrario a permutazione
** Violare il cifrario di Vigenère
Parte IV: Usare cifrature
* Applicazioni della crittografia
** Firma elettronica
*** Firma elettronica
*** DSA
** Moneta elettronica
** Voto elettronico
** DRM
** Anonimato
* Cifrature classiche
** Cifrario di Beale
** Cifrari a trasposizione
** Cifrario di Cesare
** Cifrario Atbash
** Cifrario a chiave autocifrante
** Cifrario di Playfair
** Sostituzione polialfabetica
** S-box
** Scytale
** Cifrario a sostituzione
** Cifrario a permutazione
** Cifrario di Vernam
** Cifrario di Vigenère
* Cifrature contemporanee
** Cifrature simmetriche
*** Macchina Enigma
*** One-time pads
*** Data Encryption Standard (DES)
*** Advanced Encryption Standard
** Cifrature asimmetriche
*** Introduzione alla cifratura a chiave pubblica
*** RSA
*** ElGamal
*** Curva ellittica
** Funzioni di hash
*** MD5
*** SHA-1
*** RIPEMD-160
*** Tiger
* Protocolli
** Protocolli di autentificazione
*** Kerberos
** Protocolli per lo scambio chiave
*** Diffie-Hellman
** Comunicazioni sicure
*** SSL, SSH
Parte V: La crittografia e la società
* La natura mutevole dell'uso della crittografia
* Crittografia, governi e leggi
* Aspettative dell'utente normale
* Snake Oil
Parte VI: Miscellanea
* Possibilità future
** Crittografia quantistica
** Miglioramento del calcolo parallelo dei computer
* Glossario dei termini
* Letture addizionali
* Appendice A: background matematico
** Crittografia/Teoria dei numeri
** Crittografia/Teoria dei gruppi
** Crittografia/Complessità computazionale
Modifica il sommario
La matematica utilizzata nella crittanalisi è una matematica di base. Tutte le operazioni utilizzate sono prevalentemente prodotti e divisioni. Più complicati sono i concetti di fondo.
Ad esempio:
    Per poter costruire un algoritmo di crittografia a trasposizione è necessario introdurre il concetto di aritmetica modulare (o aritmetica dell'orologio).
Per creare algoritmi di crittanalisi più complessi come l'RSA, nella crittanalisi moderna vengono utilizzate operazioni sui numeri primi.
Importante è non utilizzare numeri primi particolari come i numeri primi di Fermat (F$_n$ = 2$^{2n+1}$) e di Mersenne (M$_n$=2$^n$-1).

## teoremi e definizioni dei numeri primi
### Definizione di numero primo

    Un numero n (positivo) si dice primo se ha esattamente due divisori positivi distinti.
    N.B.: Il numero 1 (uno) non è primo per comodità e convenzione.

### Teorema Fondamentale dell'Aritmetica

    Un numero n (positivo) o è un numero primo o è un prodotto di primi.
    Per la dimostrazione di questo teorema si utilizza il principio di induzione.

### Teorema di Euclide

    Esistono infiniti numeri primi.
Può essere utile conoscere i teoremi di:
    - Dirichlet
    - Wilson
    - Matijasevic
Per cifrari famosi, come ad esempio quello di Cesare, è molto utile, ma non necessario, conoscere il Piccolo Teorema di Fermat.

### Piccolo teorema di Fermat:

    Lemma 36:
    --> Siano x, y appartenenti a Z$_n$ con x ≠ y
    --> Dato a appartenente a Z$^*$$_n$ coprimo con n
    --> ax e ay non sono ma tra loro congruenti modulo n
L’enunciato di questo teorema compare in una lettera indirizzata da Fermat ad un amico. Esso afferma che, se p è un numero primo, ed a è un intero positivo qualunque, allora il numero
a$^p$-a
è divisibile per p. In realtà vale un risultato più forte: se p non divide a, allora
a $^{p-1}$ – 1
è divisibile per p. La dimostrazione fu data nel 1736 da Eulero, che nel 1760 generalizzò il teorema. Egli introdusse la funzione φ, detta totiente: per ogni intero positivo n, indicò con φ(n) il numero di interi compresi fra 1 e n-1 che non hanno, con n, divisori comuni non banali. Egli provò che, per qualsiasi intero positivo a coprimo rispetto ad n il numero
a $^{φ(n)}$ - 1
è divisibile per n. Questo enunciato contiene il Piccolo Teorema di Fermat, in quanto, per ogni numero primo p, si ha che φ(p)=p-1.