Anteprima
Vedrai una selezione di 3 pagine su 10
Sistemi e reti - Come funziona TFTP con crittografia Pag. 1 Sistemi e reti - Come funziona TFTP con crittografia Pag. 2
Anteprima di 3 pagg. su 10.
Scarica il documento per vederlo tutto.
Sistemi e reti - Come funziona TFTP con crittografia Pag. 6
1 su 10
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Il client nel nostro progetto è il primo che deve essere avviato (prima del server) siccome si aspetta dal server due chiavi e, n che utilizzerà per svolgere RSA. Dopo che gli sono arrivati i pacchetti, creiamo due attributi che prendono ciò che si trovava all'interno di essi; byteToLong è un metodo utilizzato per convertire i byte in long (descritto successivamente). Infine passiamo e ed n a due variabili di tipo BigInteger poiché la grandezza di essi potrebbe non bastare per essere tenuta in long dopodiché il risultato ottenuto da chiaveScelta (la nostra chiave di criptazione) elevata a e mod n viene salvata in cifraS dopodiché viene passata in un attributo long per poi essere inserita in un buffer utilizzando il metodo long to byte (metodo spiegato successivamente) per poi essere inviata al server.

SERVER

Nel server invece utilizziamo un array statico denominato numeriPrimi contenente i numeri primi da 7 a 109 (i numeri 1, 2, 3, 5 sono stati tolti).

perché il messaggio deve essere più piccolo della chiave e se vengono moltiplicati due di questi numeri c'è il rischio che non funzioni il programma.

I due attributi p e q prendono un numero qualsiasi all'interno dell'array numeriPrimi e si va a moltiplicare le due variabili e il risultato viene messo in n. Successivamente si calcola la chiave privata del server denominata b che calcola la moltiplicazione di p e q sottratti di 1. Inoltre viene creato l'attributo e che deve essere coprimo dell'attributo b ovvero deve avere come massimo comun divisore solo 1; per far si che questo avvenga abbiamo fatto un ciclo dove richiamiamo il metodo MCD per trovare il massimo comune divisore.

Attraverso la conversione da long a byte grazie al metodo LongToByte inseriamo l'attributo è in bufferNumeri per poi inviarlo al client, stessa cosa per l'attributo n. Quando il client spedisce al server la chiave simmetrica cifrata, la chiave simmetrica

```html

viene messa nella variabile msgC tramite il metodo ByteToLong, inserita in un attributo di tipo BigInteger. Stessa cosa vale per la variabile n e per la variabile d (l'inverso di e nell'aritmetica finita di ordine b che viene utilizzata per decodificare msgC) che verranno utilizzati dopo per fare come nel client il modulo di big (variabile contente la chiave simmetrica cifrata).

METODO MCD

Il metodo MCD lo utilizziamo per fare in modo che l'attributo del server E e D abbiamo come mcd solo 1 per far ciò utilizziamo l'aritmetica di Euclide.

METODO LONGTOBYTE E BYTETOLONG

Questo è il metodo utilizzato per la conversione da byte a long e viceversa.

INTEGRITÀ

Con il termine integrità si intende la protezione dei dati e delle informazioni nei confronti delle modifiche del contenuto, accidentali (involontarie) oppure effettuate volontariamente da una terza parte, essendo compreso nell'alterazione anche il caso limite della generazione ex novo di dati.

```

informazioni.Per far ciò abbiamo utilizzato l'algoritmo MD5 utilizzando la classe di java MessageDigest.

CLIENT

Nel client l'MD5 lo creiamo nel metodo leggiFile dove, creiamo un attributo di File che conterrà il file che verrà usato per l'upload. Successivamente creiamo un buffer di byte il quale sarà lungo la lunghezza del file più 16, la lunghezza dell'MD5 calcolata attraverso la classe MessageDigest. La stessa cosa vale per il server nel caso in cui si richiede il download dal client, se no si trova nel metodo writeFile nel caso il client richieda l'upload.

SERVER

Nel server viene inoltre fatto il controllo per verificare che l'MD5 calcolato sia identico a quello ricevuto dal client. Nel caso fossero diversi il file non viene né scaricato né caricato.

WIRESHARK

La prima immagine mostra la crittografia di cesare mentre le successive 3 mostrano l'autenticazione con RSA.

Dettagli
Publisher
A.A. 2019-2020
10 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher davide.v di informazioni apprese con la frequenza delle lezioni di abilità informatiche e telematiche 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 Torino o del prof Ayr Ubaldo.