Dove sono

Contattami

Address

Abito da qualche parte su questa minuscola sfera nuvolosa. In un pezzo di terra e rocce a forma di stivale, dove l'abitante medio è il furbetto che si lamenta se gli altri fanno i furbetti.

Scrambler

Scrambler
Dec
24

 

Tutto è nato da una esigenza: archiviare i miei files online in maniera sicura. E fare in modo che nessuno potesse decifrarli. Anche un sistema di crittografia non sarebbe abbastanza, chiunque può fare un bruteforce. E poi chi mi dice che AES sarà sempre un sistema sicuro? Chi crea un sistema senza poterlo controllare è un pazzo.

Due mesi fa ho deciso di unire l’utile al dilettevole: imparare la gestione di un programma di medie dimensioni in C e creare ciò che mi serve.

Così mi sono gettato sul codice, e mentre imparavo a dialogare con i files a basso livello imparavo a gestire ordinatamente le funzioni, mentre gestivo per la prima volta una documentazione seria imparavo ad usare Subversion. E così via.

 

Cosa fa

 

Il mio approccio è semplice, invece di utilizzare solo un sistema crittografico, mescolo i bytes come se fossero delle carte. Ricordando l’ordine delle azioni tramite un codice (HashCode) posso riassemblare il file com’era in origine. Lento, lentissimo. Perfetto. Nessun computer è in grado di fare un bruteforce in tempi ragionevoli. Potrei dire che questo metodo batte qualunque sistema di crittografia come velocità di cifratura e decrittazione.

E ora finalmente sono arrivato alla fine. Il rilascio della prima versione.
Se ti interessa mettere le mani sul codice tutto quello che devi fare è fare un checkout dal mio repository:

 

https://code.mc128k.info/mc128k/Scrambler.git

 

Come funziona

 

Il programma si esegue da linea di comando, accetta una directory di entrata e una di uscita, la dimensione dei pezzi da creare e opzionalmente il file chiave e il reverse.
Una volta cifrati i files ci si ritrova una serie di elementi che iniziano con lo stesso codice, e un file chiave che contiene il necessario per decifrare il tutto. La chiave va tenuta al sicuro, gli altri files sono perfettamente “ermetici”.
I files vengono controllati prima e dopo il processo per sicurezza tramite SHA-1.

 

Codice

 

Non pretendo di essere perfetto al primo tentativo, accetto ogni correzione e ogni consiglio. Ci lavoro ogni tanto, quindi non ci sono da aspettarsi miracoli. Il massimo di tempo che posso dedicare al progetto è nella pausa pranzo e di notte. Non sono un programmatore di professione.
Il codice e la documentazione sono interamente scritti in inglese. Il testo visualizzato è pronto per la localizzazione, ma sarà un eventuale lavoro futuro.

 

Note

 

  • Non offro nessun tipo di garanzia
  • Offro il codice “così com’è”
  • Ti prendi le tue responsabilità se ti fonde il computer o se cancella dei files.
  • Non garantisco lavoro costante sul codice

 

Ma perché non faccio un semplice pulsante di download?
Questo è materiale destinato a chi ha un minimo di esperienza, e lo condivido per puro divertimento (e per imparare a gestire il server (SVN). Se non sai cosa vuol dire “linea di comando”, “programmazione procedurale” e “memory leak” allora questa non è roba che fa per te.

Comments (0)
Leave a Comment