
Ecco un elenco sparso e leggero di argomenti di criptografia, utili per avere degli schemi di massima per un esame inerente questo ambito.
Cifrario Affine
- Cifrario nella forma

- C rappresenta il carattere cifrato, P rappresenta il carattere Plaintext
- a e b sono due numeri
- Crackabile con analisi di frequenza, reversibile solo se ab e 26 sono coprimi.
Cifrario DES
Il Data Encryption Standard è uno dei cifrari più utilizzati al mondo ed opera come un cifrario di Feistel. Utilizza chiavi a 64 bit, di cui solo 56 sono utili.
Il blocco da criptare viene diviso in due parti che sono elaborate singolarmente. La parte destra passa attraverso una fase di espansione, una di xor con la sottochiave, una di sostituzione e permutazione, ed infine avviene lo xor finale con la parte sinistra. Tale risultato viene poi portato in output come sottoblocco destro del round successivo. La parte sinistra invece è la parte destra del round precedente.
Le sottochiavi sono generate tramite una tabella chiamata permuted choice che fondamentalmente effettua uno shifting secondo un numero di passi prestabilito.
Il DES ha il vantaggio della sua semplicità e diffusione, ma è ormai facilmente craccabile in quanto il tempo computazionale anche per abbatterlo tramite attacco brute force è minore di 
Cifrario AES
L’advanced encryption standard è una naturale evoluzione del des. Venne realizzato tramite un concorso a cui parteciparono più algoritmi proposti da varie personalità ed aziende. Vinse, dopo una triplice selezione, il cifrario RjinDael che NON ha la struttura di un cifrario di Feistel.
AES opera tramite una matrice degli stati, ed ha blocchi da 128 bit con chiavi che possono avere 128, 192 o 256 bit.
Le operazioni fondamentali in AES sono 4:
- ADD ROUND KEY: Viene effettuato lo xor con una sottochiave ricavata dalla chiave di partenza
- SUBSTITUTE BYTES: Viene effettuato uno scambio dei byte tramite un’apposita tabella, effettuando una trasformazione inversa in
ed una trasformazione affine.
- SHIFT ROWS: Si diffondono i byte nella matrice 4 x 4 spostando a sinistra i byte di ogni riga di tanti posti quant è il suo indice, meno uno.
- MIX COLUMNS: Sfruttando l’aritmetica polinomiale, viene effettuata una modificadei valori della tabella degli stati operando una moltiplicazione per un polinomio di terzo grado, modulo
Modalità di funzionamento dei cifrari
- ECB: Electronic code book, è la modalità classica in cui ogni blocco è criptato in modo indipendente
- CBC: Chain block ciphering, è la modalità in cui l’output del round n viene xorato con la chiave del round n+1 per ottenere la sottochiave del round n+1
- CFB: Cipher Feedback, è la modalità che converte da blocchi a flussi, ogni singolo carattere criptato viene xorato con la chiave del blocco successivo, effettuando quindi più cifrature in parallelo.
- OFB: Output Feedback, non propaga gli errori, ma è più vulnerabile.
Cifrario RC4
Cifrario a flussi che viene utilizzato principalmente nelle trasmissioni a forte rumore come le comunicazioni wireless. Genera numeri pseudocasuali vincolati alla chiave e ne effettua poi uno xor con il plaintext. Per questi motivi risulta nativamente insicuro.
A5/1 – A5/2 – Kasumi
Cifrari a flussi utilizzati principalmente nelle comunicazioni GSM. Utilizzano 54 bit di chiave e creano un keystream xorato con il plaintext. Risulta attaccabile in meno tempo del bruteforce se viene attuata una politica di cracking a testo in chiaro noto.
Cifrario RSA
E’ il più conosciuto tra i cifrari a chiave asimettrica e sfrutta il principio matematico della difficoltà computazionale della fattorizzazione di numeri grandi. Si ritiene che esso utilizzi la più semplice tra le funzioni one-way, che è proprio la fattorizzazione.
Lavorando con numeri estremamente grandi viene più spesso utilizzato per lo scambio chiavi che per la criptazione, ma è potenzialmente in grado di fare qualsiasi operazione richiesta per la sicurezza.
Diffie-Hellman
Algoritmo criptografico per lo scambio delle chiavi, utilizza come funzione one-way il logaritmo discreto in un campo finito. Per comunicare Alice manda a Bob una tripletta di numeri, A,G e P.
Questi numeri sono legati tra loro dalla relazione 
Dove a piccolo è un numero scelto da Alice che deve restare segreto.
Bob risponde ad alice con un’altra tripletta, B,G,P, legati dalla relazione:
dove b è un altro numero scelto da Bob, che deve restare segreto.
A questo punto alice calcolerà
mentre Bob calcola
. La potenza del D-H è che Ka e Kb sono uguali, vengono calcolati e non trasmessi, e rappresentano la chiave di sessione da utilizzare come si vuole e con qualsiasi cifrario simmetrico si desideri.
Cifrario El Gamal
Si comporta come RSA ma utilizza i Logaritmi discreti.
Crittografia Ellittica
Rappresenta l’avanguardia o quasi della criptografia asimmetrica. Partendo dall’equazione
confinata ad un campo finito, si modifica l’operazione di somma intendendo la somma come l’opposto del terzo punto di incontro della retta che passa per due punti R e P appartenenti alla curva con la curva stessa.
Questa metodologia di criptazione consente di avere sicurezza maggiore a partire dallo stesso numero di bit della chiave rispetto sia alla fattorizzazione che ai logaritmi discreti ma non è ancora stata studiata a fondo e in questo momento non è considerata sufficientemente collaudata per essere utilizzata come standard internazionale.
MAC
Il Message Authentication Code è una sorta di impronta digitale di un messaggio, ed è sempre della stessa grandezza a prescindere dalla lunghezza del messaggio di cui fare il fingerprinting ed è fortemente dipendente da una chiave.
Hash
Fa le stesse operazioni del MAC ma senza utilizzare una chiave. Occorre ricordare che ne Hash ne MAC sono firme digitali e che è computazionalmente impossibile ricavare un messaggio a partire dal suo Hash ne tantomeno trovarne due uguali in tempi ragionevoli.
DSS
Standard di firma digitale, utilizza i logaritmi discreti esattamente come nell’algoritmo di El Gamal. Fa uso di una chiave pubblica e di una privata. La sua sicurezza è data dalla mancanza di un algoritmo per il calcolo veloce del logaritmo discreto.
SHA
Secure Hash Algorithm è un algoritmo per il calcolo dell’hash di un messaggio. E’ un insieme di funzioni di somma, xor e rotazioni. Le sue varie nomenclature sono dipendenti dalla grandezza del blocco in output, è uno degli standard più usati per la realizzazione dei fingerprinting.
Whirlpool
Algoritmo per il calcolo dell hash a 512 bit. Richiede un numero di operazioni per il cracking superiori a 
HMAC
Il keyed-hash MAC è un meccanismo utile per avere sicurezza di integrità e autenticazione di un messaggio. Fondamentalmente è un contenitore, che non ha per standard nessuna funzione di hash in particolare, anche se spesso si utilizza SHA, nelle varie versioni.
CBC-MAC
Funziona come la classica modalità cbc e il MAC è rappresentato dall’ultimo blocco utile. Si rivela sicuro solo per blocchi di grandezza fissa in quanto per i blocchi a grandezza variabile risulta possibile generare un particolare mac. I problemi inerenti la grandezza del blocco vengono risolti in CMAC o OMAC.
KERBEROS
Kerberos è una procedura di crittografia simmetrica Client/Server. Il suo utilizzo è l’evitare che i singoli host di una subnet abbiano contatto diretto con server o applicazioni considerate non sicure. Necessita di una terza parte affidabile, ed utilizza i protocolli Needham Schroeder. E’ composto da due parti, Authentication Server e Ticket Granting System. (AS e TGS).
X.509
Utilizza i certificati ed è utilizzato nelle Public Key Infrastructures, che sono ovviamente dotate di una certification Authority. In soldoni è una soluzione comoda per la sicurezza delle subnet che hanno molti soldi da spendere e tante cose da nascondere o garantire.
PGP
Pretty good privacy è la suite di strumenti criptografici più utilizzata al mondo. E’ gratuita, ne esiste una sua implementazione opensource e utilizza la crittografia asimmetrica in funzione dello scambio chiavi per diminuire i costi computazionali.
La sicurezza viene fornita dalla comunità e dal concetto di feedback e di web of trust. Esistono diversi key server che si sincronizzano tra loro.
S-MIME
Funziona come PGP ma usa una Certification Authority.
BASE64
Codifica che consente di inviare binari con il protocollo SMTP.
IPSEC
Fornisce cifratura ed autenticazione dei pacchetti IP. E’ quindi una cifratura di rete totalmente trasparente ai livelli superiori. Viene utilizzato per realizzare VPN (Virtual Private Network). Si divide in due modalità:
Transport (Host 2 Host)
Tunnel (Gateway 2 Gateway)
Ha due modalità di utilizzo che sono utilizzabili in entrambi i casi, AH e ESP.
AH fornisce integrità ma non confidenzialità mentre ESP fornisce confidenzialità ma non tratta l’header.
Attacco a dizionario
L’attacco a dizionario è una tipologia di attacco che sfrutta l’abitudine dell’utente medio di utilizzare una password non solo intellegibile, ma di senso compiuto e che sia a lui legata, per rendere il processo mnemonico più semplice. Si contrasta tale attacco in vari modi… tramite reacting way, che consiste nel verificare ogni tot che le password siano robuste, oppure proactive way, che consente nel costruire una password robusta ab ovo, tramite vincoli iniziali o tramite inserimento di un salt.
VIRUS
Porzione di codice che, sfruttando un altro applicativo, compie operazioni potenzialmente dannose.
WORM
Virus standalone, non ha bisogno di un programma da parassitare.
DOS – DdOS
Denial of Service, attacco che impedisce l’accesso ad un servizio pubblico di un server tramite continue richieste fasulle o allocamento di memoria non utile. Viene detto distribuito se è realizzato da più di un indirizzo ip attaccante.
FIREWALL
Viene chiamata una infrastruttura di rete che filtra i pacchetti in ingresso e in uscita secondo delle regole stabilite dall’amministratore di rete. Su linux si ha NETFILTER ed IPTABLES.
DMZ
Demilitarized Zone, è una porzione di sottorete che deve avere libero accesso all’esterno sia in entrata che in uscita ed ovviamente non deve avere alcun privilegio verso le parti sensibili della rete.
WEP
Wired Equivalent Privacy utilizza RC4, ma l’algoritmo di gestione della chiave risulta talmente blando da non giustificare il suo nome, per questo si è passato a WPA e WPA2.
WPA – WPA2
Wpa è sostanzialmente una WEP con un contatore, mentre WPA-2 ha di base un handshaking a 4 vie.
ALGORITMI DI PRIMALITA’
Esistono diversi algoritmi che verificano, in modo deterministico o no se un numero è primo. Tale processo è più semplice della fattorizzazione.
Moltissimi test sono deterministici solo in alcuni casi, altri (ad esempio il metodo banale delle divisioni successive) sono troppo complessi in funzione della grandezza dell’input.
Il metodo più utilizzato è il test di Miller Rabin. Tale test consiste nell’effettuare calcoli di minimo comune multiplo e modulazioni successive. Le operazioni vengono iterate ed ogni iterazione moltiplica la probabilità di non primalità di un fattore (1/4). Quando si arriva ad una percentuale bassa a sufficienza, tale numero viene detto primo.
Smart Card
Le smart card sono delle schede con dell’elettronica incorporata che svolgono delle funzioni. Sono utilizzate principalmente nella telefonia, negli acquisti online, dalle banche e per i trasporti. Hanno un naturale utilizzo come mezzi di validazione servizi. Si dividono in Memory card e microprocessor card, e poi in smart card con contattiera (Contact), smart card con antenna (Contacless smartcard) e smart card con antenna e contattiera,
Ci sono due standard internazionali. Lo standard ISO 7816 che regola le carte di identificazione elettroniche a contatto, e lo standard ISO 14443 che regola i biglietti elettronici.
DOUBLE-TRIPLE-DES
Per migliorare la protezione del DES, che è oramai facilmente craccabile, si utilizza il double ed il triple DES, che sono delle concatenazioni del DES stesso. Si potrebbe pensare che un Double des abbia una complessità di cracking pari al doppio di un des normale ma non è così, basta un lieve sforzo in più rispetto al des classico per craccare anche il double des tramite attacco attivo man in the middle.
Il triple des invece evita l’attacco meet in the middle in quanto i passaggi in cui intromettersi diventano due. Tutt’oggi il triple des a due e tre chiavi è ancora molto utilizzato.
SSH
Secure Shell è un protocollo per il login remoto sicuro. Si divide in tre “parti” chiamate TLP, UAP e CP, la prima autorizza il server, la seconda autorizza il client e la terza permette il multiplexing. Utilizza la porta 22 e può usare le directory o i certificati. SSH ha diverse modalità di autenticazione.