Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Guida all'uso
ae no
A
1
Algoritmi di hosting
1 Introduzione
1.1 Cos’è una funzione hash
Una funzione hash è una qualunque funzione che trasforma i dati in input in un
output di lunghezza costante.
.
Una funzione hash ha le seguenti proprietà:
Per essere usate in ambito crittografico, le funzioni devono avere altre proprietà:
1. unidirezionalità: noto h deve essere computazionalmente impossibile
trovare M tale che H(M) = h
2. resistenza debole alle collisioni: conoscendo M, deve essere com-
putazionalmente impossibile trovare M’ tale che H(M)=H(M’)
3. resistenza forte alle collisioni: deve essere computazionalmente im-
possibile trovare una coppia (M,M’) tale che H(M)=H(M’)
4. e↵etto valanga: una piccola modifica di M deve alterare tutto h.
3
2 Algoritmi di hash
2.1 Definizione
L’algoritmo di hash elabora qualunque mole di bit. Si tratta di una famiglia di
algoritmi che soddisfa questi requisiti:
1. L’algoritmo restituisce una stringa di numeri e lettere a partire da un
qualsiasi flusso di bit di qualsiasi dimensione.
2. L’algoritmo non è invertibile, ossia non è possibile ricostruire il docu-
mento originale a partire dalla stringa che viene restituita in output.
2.2 Utilizzo
E’ possibile utilizzare le funzioni di hash per creare una hash table che è una
struttura dati molto efficente per le operazioni di ricerca.
La hash table contiene dati associati ad una chiave di ricerca e viene spesso uti-
lizzato nei database per indicizzare gli elementi che saranno oggetto di ricerca.
Questa tecnica (detta di hashing) permette di realizzare funzioni di ricerca che
riescono ad individuare l’elemento desiderato in un tempo costante, indipenden-
temente dal numero di elementi presenti nell’indice.
2.3.1 SHA-0/SHA-1
L’SHA-1 di↵erisce dall’SHA-0 unicamente per una sola rotazione di bit nel pro-
cesso di preparazione del messaggio della sua funzione di compressione ad una
via; ciò fu fatto, secondo l’NSA, per correggere un difetto nell’algoritmo origi-
nale, il quale riduceva la sicurezza crittografica di SHA-0.
Ad ogni modo, l’NSA non fornı̀ nessuna ulteriore spiegazione chiarificante.
Sono state in seguito riportate debolezze sia nel codice dell’SHA-0 sia in quello
dell’SHA-1. L’SHA-1 pare o↵rire maggiore resistenza agli attacchi, a supporto
dell’asserzione dell’NSA che il cambiamento aumentò la sicurezza.
L’SHA-1 (cosı̀ come l’SHA-0) produce un digest di 160 bit da un messaggio con
una lunghezza massima di 264 1 bit
4
2.3.2 Funzionamento dello SHA-0/SHA-1
1. Imbottitura: Al messaggio originale vengono aggiunti dei bit di ”imbot-
titura” affinché la lunghezza finale del messaggio risulti congruente a 448
modulo 512, cosı̀ facendo la lunghezza di ”messaggio+imbottitura” è pari
ad un numero 64bit più piccolo di un multiplo di 512bit.
2. Aggiunta lunghezza: Alla sequenza di bit (messaggio+imbottitura) cre-
ata durante il passo 1 viene aggiunto un intero unsigned di 64bit conte-
nente la lunghezza del messaggio originale. Alla fine di questi due primi
passi otteniamo una sequenza di bit che è un multiplo di 512.
5
2.3.4 Pseudocodice SHA-1
Presentiamo in seguito lo speudocodice dell’algoritmo di SHA-1:
Le seguenti formule possono essere utilizzate per calcolare f nel ciclo principale
qui sopra:
6
2.3.5 Pseudocodice SHA-2
Pseudocode dell’algoritmo SHA-256.
Notare l’incremento nel mescolamento dei bit delle word w[16..63] rispetto
all’SHA-1.
7
2.3.6 Di↵erenze fra i due algoritmi
In seguito riportiamo una tabella contenente le di↵erenze fra i due alogirmi posti
in questa dispensa:
8
G DPR
1 GDPR
1.1 Cos’è
Il GDPR (acronimo di General Data Protection Regulation) è un regolamento
europeo realtivo alla protezione delle persone fisiche con riguardo al tratta-
mento e alla libera circolazione dei dati personali.
3
(b) Interavllo temporale: anche qui, se l’utente è abilitato alla lettura
di file registrati in un intervallo temporale stabilito, dovrà attenersi
a tale intervallo
La soluzione, per tali vincoli (e in particolare per il punto (a) e (b)) sono: la
crittografia omorfica (nel caso della localizzazione) e crittografia tradizionale per
quella dell’intervallo temporale.
A B B=A
4
1.6 Stream di bite
Se voglio cifrare un messaggio lungo, utilizzerò uno stream di bite.
Posso generare la sequenza casuale utilizzando Blum, o meglio m = (Blum,
stram).
1.7.1 Modello 1
1.8 Modello 2
5
• A farà M1 Sb1
• U potrà decifrare M1 e↵ettuando la seguente sequenza di XOR:
(M1 Sb1 ) Rb1 (Rb1 Sb1 = M1 )
6
Identità federata
1 Indentità federata
Con il termine identità elettronica di un soggetto (utente, computer, soft-
ware) s’intende l’insieme di dati digitali che identificano il soggetto in maniera
univoca all’interno di un dominio informatico.
I dati digitali che compongono l’identità elettronica sono di solito composti da
un insieme di valori del tipo attributo = valore.
Il processo completo della gestione dell’identità, dalla fase di creazione fino alla
sua eliminazione, viene chiamato la gestione dell’identita elettronica.
L’autenticazione è il processo che permette ad un soggetto (utente, computer,
software) di verificare la corretta identità di un altro soggetto con cui intende
comunicare. L’autorizzazione, invece, è il processo mediante il quale ad un
soggetto già autenticato si garantisce o si nega l’accesso ad un servizio in base
all’identità ed ai ruoli che lo identificano.
Spesso, per autorizzare l’accesso ad un servizio, più che l’identità del soggetto
serve conoscere il ruolo della persona autenticata. Ad esempio, un medico di
un ospedale, indipendentemente da chi sia, ha diritto di accedere ad un servizio
“X” gestito dallo stesso ospedale.
La verifica di accesso in base ai ruoli ricoperti permette inoltre di poter garantire
l’anonimato del soggetto che accede ad un determinato servizio.
3
L’unica difficoltà del MITM è che qualora il canale fosse un SSL, allora il MITM
dovrà avere un CA installato sul proprio PC oppure attuare una ingegneria
sociale.
Al termine della registrazione del dispositivo, il server avrà registrato una chiave
pubblica.
4
Questo modello non ha nessun vatanggio al MITM ma fa is che il browser sia
più sicuro.
Per quanto riguarda l’utente, invece, tale autenticazione ra↵orza la fiducia verso
il server però non soddisfa quello del MITM.
5
il session ID.
Il browser lo farà firmare all’utente e lo manda al server.
La risposta al server sarà il session ID con il client e, quest’ultimo, vede con la
session ID che avrà registrato.
Se è uguale allora tutto è andato a fuon fine, altrimenti c’è un MITM.
Questo dispositivo, prevede la clonazione.
Si osservi come, se l’attacco avvenisse al tempo della registrazion, allora il MITM
farebe un device virtuale il che implica che non sarà possibile riconoscerlo.
6
2. La sfida deve essere dinamica (e anche la risposta)
3. Perodicità della challange + clonazione del device (il counter deve avere
un valore inferiore di quello che si osserva).
E’ attaccabile?
Si, perchè se il MITM si mettesse dalla parte del browser, può e↵ettuare l’attacco.
La second factor aumenta l’autenticazione ma non la sicurezza.
7
La funzione hash
1 La funzione hash
La funzione hash associa ad ogni elemento del dominio un solo elemento del
codominio.
• Stach • QuickSort
• Queue • MergeSort
• Binary Tree • 2-3 tree
• Heap • AVL tree
• HeapSort • Tree
La hash table è una struttura dati usata per mettere in corrispondenza una
data chiave con un dato valore.
La hash table è molto utilizzata nei metodi di ricerca nominati hashing.
Nel dominio delle hash table, abbiamo le stringhe, dove f (stringa) ! intero
0.
3
• MD5
• SHA1
• SHA256/512
4
3 Crittografia
|dominio| = |codominio| questo implica che si possono cifrare solo documenti
la cui grandezza rientra nel dominio.
5
RSA
1 L’alterabilità di un documento
La funzione hash non garantisce che il documento non sia alterato (ossia non
modificabile) mentre la crittografia garantisce la non leggibilità del documento.
Concentriamoci sul primo aspetto: la crittografia non garantisce la non alter-
abilità del documento perchè, essendo il dominio uguale al codominio, allora
se c’è un possibile attacco al messaggio, tale messaggio arriverà comunque al
codominio :nella posizione sbagliata ma avrà comunque un valore.
3
2 RSA
Poniamo il seguente problema:
Sia Alice che Bob hanno a disposizione rispettivamente una chiave pubblica
e una chiave privata.
Nel dettaglio:
• indichiamo con k pu A e con k pr A rispettivamente la chiave pubblica e
privata di Alice
• indichiamo con k pu B e con k pr B rispettivamente la chiave pubblica e
privata di Bob
Il messaggio, dunque, fra Alice e Bob, avverrà nel seguente modo:
(k pu B , M) ! C
(k pr B , C) ! M
Bob vuole essere certo che solo Alice può inviargli il messaggio
(k pu B ,(k pr A ,M)) ! C
2. Bob riceverà il messaggio e lo decripterà utilizzando:
(k pu A ,(k pr B ,C)) ! M
Per una maggiore sicurezza per l’invio e il ricevimento del messaggio si può uti-
lizzare la firma digitale che opera come segue:
4
supponiamo sempre che i soggetti siano Alice e Bob e che il primo voglia man-
dare un messaggio al secondo, allora:
(k pr A , M) ! M’
• e lo cifrerà utilizzando la chiave pubblica di Bob:
(k pu B , M’) ! H(M)
(k pr B , H(M)) ! M’
• e successivamente quella pubblica di Alice
(k pu A , M’) ! M
5
Intimità dei numeri primi
Ora, se proviamo a dividere 43 per uno dei fattori di 42, otteniamo sempre
resto 1:
43
• 7 = 6 con resto di 1 (si ricorda che 6 = 3x2)
43
• 3 = 14 con resto di 1 (nota che 14 = 7x2)
43
• 2 = 21 con resto di 1 (nota che 21 = 3x7)
Si osservi come la divisione ha sempre resto 1 e vale sempre il prodotto dei
restanti fattori.
Ecco, con questo procedimento, Euclide si creò un postulato.
Torniamo ora alla lista dei nostri numeri primi che, per ipotesi, abbiamo detto
essere finiti e moltiplichiamoli tutti tra di loro:
P = p1 , p2 , ...pN
Non c’è dubbio che il numero P ottenuto per prodotto è maggiore di ciascuno
dei numeri, e, in particolare del massimo di essi:
P > pN
3
P + 1 > pN
1. P + 1 è un numero primo
Abbiamo dimostrato però che P + 1 > pN , ma ciò contraddice la nostra
ipotesi che pN sia il massimo dei numeri primi.
Ne consegue che, se P + 1 è primo, allora pN non è il massimo dei numeri
primi.
Euclide dimostra che, supponendo che i numeri primi siano finiti, si ottiene
sempre una contraddizione e, quindi, che i numeri primi devono essere
necessariamente infiniti.
4
Paradosso del compleanno
Nella figura seguente viene mostrato graficamente come cresce la curva della
probabilità all’aumentare del numero di persone.
Il grafico è limitato a 100 persone, perchè oltre quel numero, la probabilità è
troppo vicina alla certezza e sul grafico non si distinguerebbe più dalla retta.
Notiamo che la curva sale rapidamente fino intorno alle 40 persone, poi tende
ad appiattirsi avvicinandosi alla certezza.
La certezza assoluta, banalmente, non si raggiunge fino a che non sono coinvolte
366 persone.
3
2 Cos’è una funzione hash
Una funzione hash è una qualunque funzione che trasforma i dati in input in un
output di lunghezza costante.
.
Una funzione hash ha le seguenti proprietà:
• M può essere di qualsiasi dimensione
• h è sempre della stessa dimensione di M
• H(M) è facile da calcolare
4
• ogni valore di h ha la stessa probabilità di essere restituito.
Per essere usate in ambito crittografico, le funzioni devono avere altre proprietà:
1. unidirezionalità: noto h deve essere computazionalmente impossibile
trovare M tale che H(M) = h
Eguagliando questa quantità a 0,5, si scopre per quale valore di k, ho una prob-
abilità del 50% di avere due elementi uguali.
p p p p m
k = ln(2) ⇤ 2n = 1, 18 n ⇡ n = 2m = 2 2
Mostriamo ora, come tramite questi risultati, una funzione hash può risultare
N
insicura quando vengono generati 2 2 risultati in quanto si ha la probabilità di
oltre il 50% di aver trovato una collisione.
5
n
2. l’estraneo genera 2 2 varianti di m tutte con lo stesso significato.
Prepara inoltre un uguale numero di varianti del messaggio fraudolento
da sostituire al vero messaggio
3. per il paradosso del compleanno, l’estraneo ha una probabilità maggiore
di 0,5 di trovare una coppia di messaggi (vero, fraudolento) con lo stesso
codice hash.
4. l’estraneo o↵re la variante valida ad A per la firma. Poichè le due varianti
hanno lo stesso codice hash, produrranno la stessa firma; ciò permetterà
all’estraneo di sostituire il messaggio firmato da A con uno fraudolento
senza dover conoscere la chiave segreta di A.
6
Smart card
1 Smart card
Le Smart Card e i token USB, dispositivi di firma utilizzati per la Firma Digitale
e i servizi di identificazione, sono apparati elettronici in grado di conservare in
maniera protetta le chiavi private e di generare al loro interno la Firma Digitale.
Utilizzano microprocessori basati su standard previsti dalla legge, nei quali sono
implementate avanzate tecnologie crittografiche in un ambiente con standard di
sicurezza molto restrittivi.
La firma digitale viene utilizzata in questo contesto per assicurare la provenienza
e l’integrità della fattura elettronica inviata alla pubblica amministrazione.
In questo scenario, gli utenti che emettono numeri rilevanti di fatture hanno
utilizzato la fattispecie giuridica della sottoscrizione con procedura automatica.
In questo scenario il firmatario sottoscrive in modalità massiva il flusso di fat-
ture e poi le invia al Sistema di Interscambio dell’Agenzia delle Entrate.
3
Abbiamo due tipi di modelli:
• Modello multitasking (utilizzato da Apache)
4
La logica empirica sonando lllaurizio
1 La logica empirica
La logica empirica è la base del ragionamento empirico e quindi del metodo
empirico, e permette di capire un processo reale.
Una logica è un sistema di assiomi, alfabeto e regole che sono coerenti o non
coerenti rispetto alla logica utilizzata.
3
2 Il problema della roulette
Definiamo una roulette come:
Sapendo che sono usciti k neri, ci chiediamo qual è la probabilità che il k+1
esimo risultato sia nero.
Quindi ci chiediamo se la probabilità rimanga invariata dopo k lanci, ossia se
P(k+1 = nero | k = nero) = 12
Questo è vero sotto il modello matematico, ma cerchiamo di analizzarlo sotto
una logica empirica.
Al tempo tx ci si aspetta che il numero di casi rossi sia circa uguale al nu-
mero dei casi neri, ossia (P(rossi ' neri) ⇡ 1) e in un tempo t >> t0 avermo
che P(rossi ' neri) ⇡ 1.
Analizziamo un intervallo [t1 , t2 ] incluso in [t0 ,tx ] e supponiamo che l’esito sia
sempre nero (all’interno di questo intervallo).
Dunque, al tempo t2+1 , la probabilià di avere rosso è maggiore di quella nera.
4
3 Funzioni hash
Abbiamo un messaggio M e vogliamo creare una funzione f (M ) che lo protegga.
Questa funzione crea una stringa M’ che non sia facilmente riconducibile a M.
La dualità della teoria della sicurezza, verte sulla generazione di bit pseudo
casuali (derivate da f ) e di scoprire dipendenze.
5
Numeri casuali
Il problema nell’ informatica è dato dal fatto che il lancio di una moneta equa
(quindi la probabilità 12 ), può essere simulato da programmi deterministici e
non c’è quindi una vera randomicità.
0101010101010101010101
3
Quindi, astraendo dalla sequenza di simboli come rappresentante una sequenza
di risultati: ciò che si vuol cercare qui di chiarire è quella casualità che pertiene
alla sequenza in quanto tale, indipendentemente dalla sua genesi ed indipenden-
temente dal significato dei simboli in essa.
Se diciamo una sequenza essere casuale, è perché essa lo è a prescindere dal fatto
che i simboli in essa stiano a rappresentazione di una qualsiasi altra cosa (ciò
nonostante converrà talvolta, a beneficio dell’intuizione, ricordare comunque che
tali simboli debbano poter esprimere una qualche altra cosa).