cifratura file e cartelle stringhe c sharp dot net stefano ferri terni

Cifratura File e Cartelle con Visual C# .net

27 Giu 2009 Blog

Omega 1.6, Visual C# .net per la cifratura

Cos’è Omega 1.6

Questo è un programma che ho ideato qualche anno fa’ ed è arrivato il momento di “buttarlo in rete”. La curiosità di addentrarmi nel mondo della cifratura/decifratura mi ha spinto a provare molti programmi che la rete offre e, come spesso accade, ho deciso di provare a scriverne uno io. Il risultato è Omega (il titolo in caratteri greci è solo un giochino, così per gradire!) versione 1.6 (già il numero di versione fa’ capire la tribolazione patita!).

Omega 1.6 è scritto in Visual C# .net, ed esegue la cifratura sia di testi/stringhe che di interi files. Utilizza gli algoritmi di cifratura più famosi (e per i quali ho trovato un codice sorgente chiaro e versatile): 3DES, AES a 256bit, Blowfish a 448bit e, così per gradire, mi sono divertito a complicare un pò le cose. Ad esempio, 5 passaggi di AES a 256bit, 3 passaggi di Blowfish a 448bit e il gran finale: 3DES + i 5 passaggi AES a 256bit + i 3 passaggi Blowfish a 448bit (ogni passaggio utilizza un init vector ed una encoding key diversa, sennò è inutile!).

Come funziona

Ho cercato di semplificare al massimo la disposizione degli elementi della GUI ma, ammetto, a primo impatto fa un pò paura. No panic!

Quando si utilizzano degli algoritmi di cifratura simmetrica (come lo sono quelli citati in precedenza), prima di poter iniziare le operazioni di cifratura/decifratura, bisogna avere a disposizione 2 parametri fondamentali:

  • una chiave di cifratura, la cui lunghezza è definita in bit (8 bit = 1 byte = 1 numero da 0 a 255)
  • un init vector, cioè un vettore di inizializzazione, che viene utilizzato dai vari algoritmi per fornire una “base di partenza” solida allo stesso, a prova di criptanalisi.

Omega fa la stessa cosa: per funzionare deve avere un chiave ed un IV (init vector). Io però non mi sono fidato di scrivere in chiaro questi 2 parametri in un file binario. Il passaggio è un pò più complicato, ma nemmeno tanto.

In basso nel riquadro “Settings” troviamo i comandi principali. A sinistra la lista degli algoritmi utilizzabili, al centro una textbox dove ci finirà il “pass”, cioè l’insieme di chiave e IV cifrati in AES 256bit (in chiaro non mi andava di lasciarlo!), in basso la password per cifrare il pass, a destra i pulsanti che attivano le varie funzioni del programma.

Per cifrare un testo (ad es. Ciao!, che possiamo mettere pure a colori e cambiare font – pulsanti a destra – Font e Color), è sufficiente scriverlo nella grande Text Box in alto. Selezioniamo l’algoritmo, scegliamo una password (da inserire 2 volte nei textbox in basso) o, meglio ancora, utilizziamo il generatore casuale di password (occhio che non sono per niente mnemoniche!), generiamo il pass (lo possiamo anche salvare, caricare se lo abbiamo già salvato in un altro file oppure possiamo copiarlo nella textbox ed utilizzarlo con “Use this”). Dopo di ciò non ci rimane che cliccare sui pulsanti “Encript” o “Decript”, a seconda delle nostre esigenze.

Stessa procedura per i files, cambia solo il pulsate da premere (“File Encript” o “File Decript”). Per permettere una corretta cifratura/decifratura dobbiamo ricordarci (o salvarci da qualche parte):

  • il pass (per via testuale o tramite file binario)
  • la password del pass
  • l’algoritmo di cifratura
  • il messaggio o il file da proteggere

Se volete divertirvi con questo programmino, potete scaricarlo cliccando quì. Nel file troverete l’eseguibile (che necessita del .net framework 3.5), l’icona, la dll con l’algoritmo Blowfish creata da Markus Hahn, il file manifest a corredo dell’eseguibile e un altro file: omegatray.exe, un programmino che vi permette di avere Omega sempre sulla barra delle applicazioni (quella in basso a destra vicino l’orologio di windows).

Search

+