INTRODUZIONE
ATTENZIONE!
Se si desidera utilizzare chiavi simmetriche che abbiano una dimensione maggiore di 128 bit è necessario avere installate o installare le JCE, ossia le Java Cryptography Extension. Senza tali librerie non è possibile utilizzare chiavi maggiori di 128 bit. Una copia di tali librerie, valide per Java 8, è fornita insieme alla presente applicazione nella cartella "lib".
Per una corretta installazione, leggere la guida riportata in coda al presente documento.
Lo scopo del progetto è quello di realizzare un software per il desktop in grado di eseguire il crittaggio e il decrittaggio di un file (testo, immagine o video) utilizzando alcuni degli algoritmi a chiave simmetrica studiati durante il corso di Sicurezza nelle applicazioni multimediali.
Gli algoritmi che sono stati scelti per raggiungere lo scopo sono i seguenti:
- Blowfish
- DES
- AES
È inoltre stata aggiunta la gesitone degli hash code tramite gli algoritmi SHA-1 e SHA-2.
Il sistema fa utilizzo delle librerie javax.crypto.* e della Java Cryptography Extension (JCE) al fine di consentire l'utilizzo di chiavi superiori ai 128 bit
USO DEL SOFTWARE
L'interfaccia grafica è stata disegnata con il primario obiettivo di essere semplice e intuitiva.
Come si può esservare dallo screenshot qui di seguito riportato, la parte superiore dell'interfaccia grafica mostra subito le varie funzioni a disposizione dell'utente: Crypt, Decrypt, Hash, Options, Help.
La schermata di crittaggio [Crypt]
La schermata iniziale è quella mostrata in figura e consente di effettuare il critaggio di un qualunque file (testo, immagine, audio o video) che abbia una dimensione inferiore a 1000MB (1GB).

La schermata è suddivisa in 4 sezioni orizzontali:
- File da crittare
- Algoritmo di crittaggio
- Dimensione della chiave e chiave
- Posizione in cui salvare il file crittato
La prima sezione, quella in alto, consente di scegliere il file da crittare. Per farlo è necessario premere sul pulsante presente alla destra della casella di testo, il bottone con i 3 puntini, individuare il file e selezionarlo. Qualora il file non fosse tra quelli che il sistema è in grado di criptare, verrà un mostrato un messaggio che indica l'impossibilità di riconoscere il file.
La seconda sezione consente di scegliere l'algoritmo che si desidera utilizzare. Per farlo è sufficiente cliccare sulla casella a scelta e selezionare l'algoritmo desiderato.
La terza sezione consente di scegliere la dimensione della chiave e di inserirla. Bisogna fare un paio di osservazioni. La prima è che l'algoritmo DES prevede esclusivamente una chiave a 64 bit (di cui ne vengono ultizzati solo 56), quindi scegliere tale algoritmo nella seconda sezione bloccherà la possibilità di sceglere la dimensione della chiave. La seconda osservazione è che la casella di inserimento della chiave rimarrà di colore rosso fino a quando la chiave non sarà della giusta dimensione. Non sarà quindi possibile effettuare un crittaggio se la casella è di colore rosso.
L'ultima sezione consente di scegliere la cartella in cui salvare il file criptato. Da notare che tale casella viene compilata in automatico non appena si seleziona il file da crittare facendo in modo che il file crittato venga salvato nella stessa cartella del file originale. Per modificare tale cartella è sufficiente cliccare sul bottone con i 3 punti e selezionare la cartella desiderata. Da osservare che il file crittato viene salvato con estensione .sam.
La schermata di decrittaggio [Decrypt]
Questa schermata è stata resa volutamente speculare alla precedente. Ciò al fine di renderne l'utilizzo il più semplice possibile.
Dunque anche in questo caso ci sono 4 sezioni con le stesse fuzioni logiche della precedente:
- File da decrittare
- Algoritmo di crittaggio
- Chiave da utilizzare
- Posizione in cui salvare il file decrittato

Anche in questo caso, una volta scelto il file da decrittare (la cui estensione deve necessariamente essere .sam) viene autocompilata l'ultima sezione, ossia quella in cui salvare il file decrittato a, anche in qeusto caso, cliccando sul bottone con i 3 puntini è possibile modificare la cartella di destinazione.
La schermata di Hash

Questa funzionalità, sebbene non richiesta dalle specifiche, è stata aggiunta in quanto facente parte di uno dei due approfondimenti a scelta effettuati dagli studenti. Lo scopo di questa parte dell'applicazione è il calcolo di un codice hash in base all'algoritmo scelto (SHA-1, SHA-256, SHA-384, SHA-512). Scelto dunque un file nella parte superiore della schermata e scelto un algoritmo nella parte centrale, nella parte finale viene mostrato il corrispondente codice hash (o message digest).