Tuesday, February 16, 2010

Crittografia: XOR

Il metodo di crittografia xor è fra i più semplici algoritmi crittografici a chiave privata.
L'algoritmo sfrutta una proprietà fondamentale dello XOR:


a ^ b = c;
c ^ b = a;

Quindi se a è il messaggio, b la chiave e c il messaggio crittografato, si può crittografare il messaggio applicando la xor con la chiave. Per decriptarlo basta applicare la chiave al testo criptato e si riottiene il messaggio iniziale.

Allego un programma in c (sfrutta i pthread POSIX, utilizzabile si sistemi UNIX) che dato un file di ingresso, un file di output e una maschera intera (che rappresenta la chiave), crittografa il file di ingresso nel file di output (è in grado di crittografare file dell'ordine di un GiB in meno di un minuto).

Es:
$ ./Criptatore dati_importanti.odt dati_crittografati 64876229

Viene creato un file dati_crittografati, da cui è impossibile leggere le informazioni iniziali (senza craccare l'algoritmo ovviamente). Per ritornare al file originale, si dà come file di input il file di output e bisogna usare la stessa chiave (maschera).

$ ./Criptatore dati_crittografati dati_recuperati.odt 64876229

Ecco l'archivio: download

1 comment:

Anonymous said...

Cesare e Leon Battista Alberti ne sarebbero entusiasti!! :)