Anteprima
Vedrai una selezione di 3 pagine su 7
Appunti di Sistemi operativi sulla crittografia Pag. 1 Appunti di Sistemi operativi sulla crittografia Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Appunti di Sistemi operativi sulla crittografia Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

B+ B-

una privata, che soltanto lui conosce. Useremo le notazioni e per indicare rispettivamente la chiave

pubblica e quella privata di Bob. Per comunicare con Bob, Alice prima di tutto si procura la chiave pubblica di

(m),

Bob e codifica quindi il suo testo in chiaro utilizzando la chiave pubblica di Bob e un dato (per esempio

K (m).

B+

standardizzato) algoritmo di cifratura, e genera un messaggio criptato che indicheremo con Quando

Bob riceve il messaggio cifrato, utilizza la sua chiave privata e un algoritmo per decodificarlo. In altri termini,

K (K (m)).

B- B+

Bob calcola Alice può utilizzare la chiave pubblica di Bob per inviargli un messaggio segreto

senza che nessuno di loro debba distribuire chiavi segrete. Vedremo tra poco che invertendo la cifratura con

K (K (m)) = K (K (m)) = m.

B- B+ B- B+

chiave pubblica e quella con chiave privata si ottiene lo stesso risultato, cioè,

L’impiego della crittografia a chiave pubblica è quindi concettualmente semplice. Ma vengono subito in mente

due obiezioni. La prima è che l’intruso che intercetta il messaggio potrà venire a conoscenza sia della chiave

pubblica del destinatario sia dell’algoritmo che il mittente ha usato per la codifica. Inoltre, dato che la chiave

di Bob è pubblica, chiunque potrebbe inviargli un messaggio cifrato, magari fingendo di essere Alice. Con la

chiave pubblica questo non si verifica, in quanto chiunque può inviare un messaggio cifrato a Bob utilizzando

la sua chiave che, come dice il nome, è pubblicamente disponibile. Per associare un trasmittente a un

messaggio è quindi necessaria la firma digitale

RSA

Sebbene esistano numerosi algoritmi che soddisfano i requisiti esposti, l’algoritmo RSA è diventato

praticamente sinonimo di crittografia a chiave pubblica. Vediamo innanzitutto come e perché funziona. RSA fa

largo uso delle operazioni aritmetiche in modulo n.

Supponiamo ora che Alice voglia inviare a Bob un messaggio cifrato con RSA. Ricordiamo che qualsiasi

messaggio non è altro che una sequenza di bit che può essere rappresentata in modo univoco da un numero

intero insieme alla sua lunghezza. Per esempio, supponiamo che il messaggio sia la sequenza di bit 1001; tale

messaggio può essere rappresentato dal numero intero in rappresentazione decimale 9. Quindi, cifrare un

messaggio con RSA, è equivalente a cifrare un unico numero intero che lo rappresenta.

Due sono i punti principali su cui si basa RSA:

• la scelta della chiave pubblica e di quella privata;

• gli algoritmi di cifratura e di decifratura.

Per generare la chiave pubblica e quella privata, Bob deve eseguire i seguenti passi:

p q,

1) Scegliere due numeri primi, e tanto più grande sarà il loro valore tanto più difficile risulterà violare R

SA anche se, ovviamente, cifratura e decifratura richiederanno più tempo. G li RSA Laboratories

p q

raccomandano che il prodotto di e sia dell’ordine di 1024 bit;

2) Calcolare n = pq, Calcolare anche z=(p-1)(q-1);

e n, z

3) Scegliere un numero (encryption) minore di diverso da 1 e relativamente prima a (ovvero che non abbia

z);

divisori in comune con d(decryption) ed-1 z.

4) Trovare un numero tale che sia divisibile(cioè non vi sia resto) da In altri termini, dato

e, d, ed z

è scelto in modo tale che mod = 1;

K , (n,e); K ,

B+ B-

5) La chiave pubblica di Bob, è la sequenza dei bit concatenati della coppia quella privata, è la

(n, d).

coppia

Nel nostro esempio, la cifratura di Alice e la decifratura di Bob sono eseguite come segue:

m < n .

• Supponiamo che Alice voglia inviare a Bob una stringa di bit, o un numero Per la codifica, Alice

m m /n. c c = m n.

e e e

calcola e poi il resto intero di Allora, il messaggio cifrato inviato risulta: mod La sequenza

c

di bit corrispondente al testo cifrato viene inviata a Bob.

m = c n,

d

• Per decifrare il messaggio ricevuto, Bob calcola: mod che richiede l ’utilizzo della sua chiave

(n, d).

segreta c -m n.

e

Ricordiamo quindi che nella codifica RSA , si calcola mod

L ’efficacia di RSA consiste nel fatto che non si conoscono algoritmi veloci per la fattorizzazione dei numeri

n

interi. Quindi, anche conoscendo il valore pubblico risulta computazionalmente proibitivo determinare i

p q e,

fattori primi e (con i quali, dato il valore pubblico si può facilmente calcolare la chiave segreta). D’altra

parte, non si sa se esista o no un algoritmo veloce per la fattorizzazione di un numero, ed è in questo senso

che la sicurezza di RSA non è garantita.

Integrità dei messaggi e firma digitale

Nel paragrafo precedente abbiamo visto come la cifratura può essere usata per garantire riservatezza tra due

entità comunicanti. In questo paragrafo rivolgiamo T attenzione all’altro tema egualmente importante che

riguarda l ’uso della crittografia per garantire l ’integrità dei messaggi, tema noto anche come

autenticazione dei messaggi.

Definiamo il problema dell’ integrità dei messaggi usando, ancora una volta, Alice e Bob Supponete che Bob

riceva un messaggio, che può essere cifrato o in chiaro, e che creda che sia stato inviato da Alice. Per

autenticare questo messaggio, Bob deve verificare:

1. che il messaggio sia stato effettivamente originato da Alice;

2. che non sia stato alterato lungo il percorso verso Bob.

Funzioni hash crittografiche m,

Una funzione hash prende un ingresso, e calcola una stringa di lunghezza fissata, detta hash.

Una funzione hash crittografica deve però soddisfare un’ulteriore proprietà:

y H(x) H(y).

deve essere computazionalmente impossibile trovare due messaggi x e diversi tali che =

Vale a dire che, dal punto di vista computazionale, un malintenzionato non deve avere alcuna possibilità di

poter sostituire un messaggio con un altro messaggio che sia protetto dalla funzione hash, cioè data la coppia

H(m)),

messaggio-hash ( m , creata dal trasmittente, un intruso non può falsificare il contenuto di un altro

messaggio, y, che abbia lo stesso valore hash dell’originale. Un algoritmo molto utilizzato per l’hash dei

messaggi è MD5, in grado di calcolare una hash di 128 bit con un processo a quattro fasi. Si inizia con la

normalizzazione attraverso raggiunta del valore 1 seguito da una serie di 0, in un numero tale da soddisfare

determinate condizioni. Le successive fasi prevedono: raggiunta in coda di una rappresentazione a 64 bit

della lunghezza del messaggio originale, l’inizializzazione di un accumulatore e, per ultimo, un passaggio in

cui i blocchi composti da 16 gruppi di 32 bit (word) del messaggio vengono “ triturati” attraverso un processo

che prevede quattro cicli di elaborazione. Un altro importante algoritmo hash, attualmente in uso, è hash

secure hash algorìthm).

sicuro (SHA-1, SHA-1 è uno standard utilizzato nelle applicazioni federali USA in cui è

richiesto un algoritmo hash crittografico e produce una sintesi del messaggio di 160 bit. La maggior lunghezza

del risultato rende SHA-1 più sicuro.

Codice di autenticazione dei messaggi

Per garantire l ’integrità dei messaggi, oltre alle funzioni hash crittografiche, Alice e Bob hanno bisogno di un

segreto condiviso. Questo segreto condiviso, che non è altro che una stringa di bit, è chiamato chiave di

autenticazione, Usando questo segreto condiviso, l’integrità del messaggio è realizzata come segue:

m, s m m + s, H(m s),

1) Alice crea un messaggio concatena con per creare calcola la stringa hash + per

esempio con SHA-1.

H(m + s), è message authenticatìon

chiamato codice di autenticazione del messaggio (MAC,

code); MAC m, H(m

2) Alice aggiunge il al messaggio creando il messaggio esteso (m, + s)) e lo manda a Bob;

(m, h) m s, H(m s).

3) Bob riceve il messaggio esteso e, avendo ricevuto e conoscendo calcola il MAC +

H(m + s) = h,

Se Bob conclude che va tutto bene.

Message Authentication Code,

Si noti che il MAC, che qui sta per non è lo stesso MAC usato nei protocolli a

Medium Access Control.

livello di collegamento, che in quel caso sta per Una interessante caratteristica di

MAC è che non richiede un algoritmo di cifratura. Effettivamente, in molte applicazioni, compresi gli algoritmi

link state descritti precedentemente, le entità in comunicazione si devono preoccupare solo dell’integrità del

messaggio e non della sua riservatezza. Usando MAC, le entità possono autenticare i messaggi che si

scambiano, senza che debbano includere complessi algoritmi di cifratura nel processo per garantire integrità

del messaggio.

Rimane ancora la questione importante di come venga distribuita la chiave di autenticazione condivisa tra le

entità in comunicazione. Un amministratore di rete può, a dire il vero, svolgere questo compito manualmente,

visitando ciascun router, oppure, se ciascun router ha una sua chiave pubblica, l’amministratore di rete può

comunicare la chiave di autenticazione a ciascun router, cifrandola con la chiave pubblica del router e poi

inviandogliela tramite la rete.

Firme digitali

Nel mondo digitale, per indicare il titolare o il creatore di un documento, o dichiarare di essere d’accordo con il

suo contenuto, si ricorre alla firma digitale, una tecnica di crittografia che consente di raggiungere svariati

obiettivi. Come la firma tradizionale, anche quella digitale deve essere verificabile e non falsificabile. Cioè,

deve consentire di dimostrare che un certo documento sia davvero stato firmato proprio da quella data

persona (verificabile) e che solo lei poteva realizzarlo (non falsificabile). Ricordiamo la cifratura a chiave

pubblica: Bob ha una chiave pubblica e una privata, che per lui sono uniche. La cifratura a chiave pubblica,

quindi, è un eccellente candidato alla firma digitale. Esaminiamo come funziona. Supponiamo che Bob voglia

m.

firmare digitalmente un documento,

Possiamo pensare il documento come un file o un messaggio che Bob deve firmare e inviare. Bob per firmare

(m).

B- B-

il suo documento utilizza la sua chiave privata, K per calcolare K L’obiettivo di Bob non è oscurare il

contenuto, ma firmare il documento in modo che sia verificabile e non falsificabile.

m (m)

B-

Supponiamo che Alice ottenga e K e voglia convincere un giudice che il documento è stato

effettivamente firmato da Bob e che lui era la sola persona che poteva farlo. Alice applica la chiave pubblica

di Bob e calcola:

(K (m)) m,

B+ B-

K e riproduce che corrisponde esattamente al documento originale.

Il giudice deduce che solo Bob può aver apposto la firma, per i seguenti motivi: B-

1) Chiunque abbia firmato il messaggio deve aver utilizzato la chiave di cifra

Dettagli
A.A. 2019-2020
7 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher simonagalante12 di informazioni apprese con la frequenza delle lezioni di Sistemi operativi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Sangiorgi Davide.