Sistemi e reti – crittografia TFTP
Lo scopo del progetto è di garantire una trasmissione di dati sicura e affidabile attraverso l'utilizzo delle tecniche di sicurezza delle reti. Nel progetto si è deciso di utilizzare il TFTP come base su cui sviluppare i vari algoritmi di crittografia, autenticazione e integrità.
Crittografia
La crittografia è l'insieme dei metodi volti a rendere un messaggio "oscurato" in modo da non essere comprensibile a persone non autorizzate a leggerlo. Nel progetto per la crittografia abbiamo deciso di utilizzare il cifrario di Cesare. Cesare è un metodo in cui ogni lettera del testo in chiaro è sostituita nel testo cifrato dalla lettera che si trova un certo numero di posizioni dopo nella tabella del codice ASCII.
Esempio: messaggio: Alice, chiave: 1, messaggio cifrato: Bmldf
Nell'immagine si può notare come abbiamo sviluppato il cifrario di Cesare. I due metodi sono corrispettivi sia nel client che nel server (la differenza sta nel tipo delle chiavi che gli passiamo perché nel client il tipo è long mentre nel server è di tipo BigInteger).
CodificaFrase: codificaFrase per funzionare ha bisogno che gli passiamo la chiave per codificare e l'array di byte su cui deve codificare; l'array contiene il messaggio convertito in byte. Dopodiché utilizziamo un ciclo for per prendere ogni carattere dell'array e traslarlo tante volte quanto il numero indicato dalla chiave.
DecodificaFrase: decodificaFrase funziona allo stesso modo del metodo codificaFrase ma si differenzia dal primo per due motivi. Il primo è che deve traslare dalla parte opposta per decifrare il messaggio.
Autenticazione
Per autenticazione si intende il processo di riconoscimento delle credenziali di un determinato utente in modo da autenticare i messaggi. Per svolgere l'autenticazione abbiamo usato RSA. Il metodo RSA si basa sull'esistenza di due chiavi distinte, che vengono usate per cifrare e decifrare. Se la prima chiave viene usata per la cifratura, la seconda deve necessariamente essere utilizzata per la decifratura e viceversa. La questione fondamentale è che, nonostante le due chiavi siano fra loro dipendenti, non è possibile risalire dall'una all'altra, in modo che se anche si è a conoscenza di una delle due chiavi, non si possa risalire all'altra, garantendo in questo modo l'integrità della crittografia.
Client
Il client nel nostro progetto è il primo che deve essere avviato (prima del server) siccome si aspetta dal server due chiavi e, che utilizzerà per svolgere RSA. Dopo che gli sono arrivati i pacch...
-
Sistemi con reazione positiva
-
Appunti di Sistemi operativi sulla crittografia
-
Sistemi energetici
-
Elettrotecnica - Sistemi trifase