• Non ci sono risultati.

Elementi di crittografia Elementi di Elementi di

N/A
N/A
Protected

Academic year: 2021

Condividi "Elementi di crittografia Elementi di Elementi di "

Copied!
36
0
0

Testo completo

(1)

RETI DI CALCOLATORI II

Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria

Università degli Studi di Udine

(2)

Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà degli autori prof. Pier Luca Montessoro e ing. Davide Pierattoni, Università degli Studi di Udine.

Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell’Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione.

Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori.

L’informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L’autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell’informazione).

In ogni caso non può essere dichiarata conformità all’informazione contenuta in queste slide.

In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non

Nota di Copyright

(3)

Elementi di crittografia Elementi di Elementi di

crittografia

crittografia

(4)

Crittografia Crittografia

Permette di ottenere:

Permette di ottenere:

Permette di ottenere:

Autenticazione Autenticazione Autenticazione

Segretezza Segretezza Segretezza

Integrità del messaggio Integrit

Integritàà del messaggiodel messaggio

(5)

Definizioni Definizioni

ABCD

testo in chiaro testo in

chiaro

algoritmo di cifratura

algoritmo di cifratura

#^$&

testo cifratotesto cifrato

(6)

Definizioni Definizioni

algoritmo di cifratura

algoritmo di

cifratura ABCD

testo in chiaro testo in

chiaro

#^$&

testo cifratotesto cifrato

(7)

“Scambia ogni lettera in posizione i con quella in posizione (i3+3) mod m”

“Scambia ogni lettera in posizione i con quella in posizione (i3+3) mod m”

Algoritmo segreto Algoritmo segreto

Esempio:

Esempio:

(8)

void crypto (char s[]) void crypto (char s[]) {{

intint i, m = i, m = strlenstrlen (s);(s);

for (i = 0; i < m; i++) for (i = 0; i < m; i++) {{

char t;

char t; intint j;j;

j = (i*i*i + 3) % m;

j = (i*i*i + 3) % m;

t = s[i];

t = s[i];

s[i] = s[j];

s[i] = s[j];

s[j] = t;

s[j] = t;

}}

return;

return;

Cifratura Cifratura

(9)

void decrypto (char s[]) {

int i, m = strlen (s);

for (i = m-1; i >= 0; i--) {

char t; int j;

j = (i*i*i + 3) % m;

t = s[i];

s[i] = s[j];

s[j] = t;

}

Decifratura Decifratura

(10)

Esempio:

Esempio:

"Cara Alice, credo

"Cara Alice, credo cheche Trudy Trudy cici stiastia spiando"spiando"

"

"arTarT sausAsausA eieeie aioCnodcrdaaioCnodcrda y cc,e y cc,e trlidchiptrlidchip""

(11)

NO: è necessario permettere lo sviluppo del software

necessario

NO: è necessario permettere lo sviluppo del software

necessario

Algoritmo segreto per Internet?

Algoritmo segreto per Internet?

algoritmi pubblici + CHIAVI

algoritmi pubblici

+ CHIAVI

(12)

Definizioni Definizioni

ABCD

testo in chiaro testo in

chiaro

algoritmo di cifraturaalgoritmo di cifratura

#^$&

testo cifratotesto cifrato chiave

KA chiave

KA

Alice Alice

(13)

Definizioni Definizioni

algoritmo di decifratura algoritmo di

decifratura ABCD

testo in chiaro testo in

chiaro

%&*#

testo cifratotesto cifrato chiave

KB chiave

KB

BobBob

(14)

Definizioni Definizioni

KH#4

testo

incomprensibiletesto incomprensibile algoritmo di

decifratura algoritmo di

decifratura

%&*#

testo cifratotesto cifrato

?

? ?

Trudy Trudy

(15)

Chiavi simmetriche Chiavi simmetriche

Stessa chiave per crittografia e decrittografia

Stessa chiave per crittografia e decrittografia

(16)

Come scambiarsi le chiavi?

Come scambiarsi le chiavi?

Problema:

Problema:

Chiavi simmetriche Chiavi simmetriche

len (chiave) > len (messaggio) chiavi sempre diverse

len (chiave) > len (messaggio) chiavi sempre diverse

Massima sicurezza:

Massima sicurezza:

(17)

Algoritmi per chiavi simmetriche

Algoritmi per chiavi simmetriche

Î Schema di sostituzione fissa di ogni lettera con un’altra

Î Schema di sostituzione fissa di ogni lettera con un’altra

Cifrature monoalfabetiche (cifrario di Cesare)

Cifrature monoalfabetiche (cifrario di Cesare)

Î Forzatura tramite analisi statistica delle ricorrenze Î Forzatura tramite analisi

statistica delle ricorrenze

(18)

a b c d e f g h i j k l m n o ...

f g e s j y z k r q p i t a v ...

a b c d e f g h i j k l m n o ...

f g e s j y z k r q p i t a v ...

“ciao”

“ciao” “erfv”“erfv”

Esempio: cifrario di Cesare Esempio: cifrario di Cesare

(19)

Algoritmi per chiavi simmetriche

Algoritmi per chiavi simmetriche

n cifrari di Cesare usati ciclicamente

n cifrari di Cesare usati ciclicamente

Cifrature polialfabetiche (cifrari di Vigenere)

Cifrature polialfabetiche (cifrari di Vigenere)

(20)

a b c d e f g h i j k l m n o ...

k l m n o p q r s t u v w x y ...

e f g h i j k l m n o p q r s ...

y z a b c d e f g h i j k l m ...

k l m n o p q r s t u v w x y ...

e f g ...

...

a b c d e f g h i j k l m n o ...

k l m n o p q r s t u v w x y ...

e f g h i j k l m n o p q r s ...

y z a b c d e f g h i j k l m ...

k l m n o p q r s t u v w x y ...

e f g ...

... chiave: “key”chiave: “key”

Esempio: cifrario di Vigenere Esempio: cifrario di Vigenere

“ciao”

“ciao” “mmyy”“mmyy”

(21)

Tipologie di attacco Tipologie di attacco

Î Forza bruta (tutte le possibili chiavi)

Î Forza bruta (tutte le possibili chiavi)

Î Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.)

Î Analisi statistica (ricorrenze delle lettere, delle sillabe, ecc.)

Î Analisi con testo in chiaro scelto Î Analisi con testo in chiaro scelto

Î Analisi del crittogramma di cui è nota una parte del testo

(es. intestazione standard)

Î Analisi del crittogramma di cui è nota una parte del testo

(es. intestazione standard)

(22)

Algoritmi per chiavi simmetriche

Algoritmi per chiavi simmetriche

Î Chiave a 56 bit Î Chiave a 56 bit

Î 16 fasi di manipolazione ed EXOR con i bit della chiave

Î 16 fasi di manipolazione ed EXOR con i bit della chiave

DES: Data Encryption Standard DES: Data Encryption Standard

Î Due fasi di permutazione Î Due fasi di permutazione

(23)

Algoritmi per chiavi simmetriche

Algoritmi per chiavi simmetriche

Forzato nel 1997 Forzato nel 1997

Evoluzione: DES triplo (3DES) Evoluzione: DES triplo (3DES)

(24)

Chiavi pubbliche Chiavi pubbliche

Due chiavi Due chiavi

Chiave pubblica Chiave pubblica

Chiave privata (segreta) Chiave privata (segreta)

(25)

dB (eB (m)) = m = eB (dB (m)) dB (eB (m)) = m = eB (dB (m))

Chiavi pubbliche Chiavi pubbliche

Chiavi e algoritmo di cifratura devono soddisfare la proprietà:Chiavi e algoritmo di cifratura devono soddisfare la proprietà:

(26)

Chiavi pubbliche Chiavi pubbliche

Dove:

Dove:

Dove:

dB chiave privata di Bob, tipicamente usata per la

decifratura

dB chiave privata di Bob, tipicamente usata per la

decifratura

eB chiave pubblica di Bob, tipicamente usata per la

cifratura

eB chiave pubblica di Bob, tipicamente usata per la

cifratura

dB (eB (m)) = m = eB (dB (m)) dB (eB (m)) = m = eB (dB (m))

(27)

Crittografia a chiave pubblica Crittografia a chiave pubblica

%&*#

testo cifrato

eB(m) testo cifrato

eB(m) chiave

pubblica di Bob

eB chiave pubblica

di Bob eB

ABCD

testo in chiaro testo in

chiaro

algoritmo di cifraturaalgoritmo di cifratura

(28)

Crittografia a chiave pubblica Crittografia a chiave pubblica

%&*# testo cifrato eB(m)

testo cifrato eB(m)

chiave privata

di Bob d

chiave privata

di Bob

Bob d

Bob

ABCD

testo in chiaro dB(eB(m))=m testo in chiaro

dB(eB(m))=m algoritmo di

decifratura algoritmo di

decifratura

(29)

Î RSA (Ron Rivest, Adi Shamir, Leonard Adleman)

Î RSA (Ron Rivest, Adi Shamir, Leonard Adleman)

Î Chiavi generate a partire da due

numeri primi p e q molto grandi:

p, q dell’ordine di 1024 bit

(difficile scomposizione in fattori)

Î Chiavi generate a partire da due

numeri primi p e q molto grandi:

p, q dell’ordine di 1024 bit

(difficile scomposizione in fattori)

V. descrizione dell’algoritmo V. descrizione dell’algoritmo

Algoritmo RSA per

cifratura a chiave pubblica Algoritmo RSA per

cifratura a chiave pubblica

(30)

Diffie and Hellman:

crittografia a chiave asimmetrica

Tre proprietà:

Î D(E(P)) = P

Î estremamente difficile dedurre D da E Î E non può essere forzato con attacco

di tipo “testo in chiaro a scelta”

(31)

Rivest, Shamir and Adleman:

RSA

Î Scegliere p e q (da 1024 bit) Î Calcolare

n = p x q

z = (p - 1) x (q - 1)

Î Scegliere e tale che:

1 < e < z

MCD (z, e) = 1

(32)

esempioRSA

(33)

chiavi e cifraturaRSA:

Î Chiave pubblica: { e , n } Î Chiave privata: { d, n }

Î Cifratura del testo in chiaro M < n

C = Me (mod n)

Î Decifratura del testo cifrato C

M = Cd (mod n)

(34)

Algoritmo RSA per

cifratura a chiave pubblica Algoritmo RSA per

cifratura a chiave pubblica

richiede calcolo di elevamento a potenza con numeri molto grandi richiede calcolo di elevamento a potenza con numeri molto grandi

Lungo tempo di elaborazione Lungo tempo di elaborazione

Problema:

Problema:

(35)

Algoritmo RSA per

cifratura a chiave pubblica Algoritmo RSA per

cifratura a chiave pubblica

scambio di chiavi simmetriche di sessione

scambio di chiavi simmetriche di sessione

RSA → chiavi di sessione

DES → contenuto dei messaggi RSA → chiavi di sessione

DES → contenuto dei messaggi

Possibile impiego:

Possibile impiego:

(36)

Elementi di crittografia Elementi di Elementi di

crittografia

crittografia

Riferimenti

Documenti correlati

Mecca - Programmazione Procedurale in Linguaggio C++ 5 Elementi di Base: Introduzione &gt;&gt; Panoramica. // Calcolo della superficie

Posizione: 10 Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5.

™ è stato scritto da altri programmatori e può essere riusato nel nostro

Una volta che un programma è in forma eseguibile, può essere trasferito dal file in cui risiede (memoria secondaria) in memoria centrale ed essere

la lunghezza li i delle parole codice associate ai valori dell'alfabeto delle parole codice associate ai valori dell'alfabeto sorgente è costante. sorgente è costante Codifica

© 2010 Pier Luca Montessoro (si veda la nota a pagina 2) 2 Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei

Il disegno grafico, come precedentemente accennato, pur prendendo in considerazione campi geometrici ben definiti (triangolo, quadrato, cerchio e altri poligoni), si basa

I minimi esistenziali, cioè le caratteristiche e dimensioni minime che uno spazio abitativo dovrebbe presentare per soddisfare le esigenze delle persone che lo devono