Categorie
Blog

Steganografia e social network

Immagine originale
Piano di attacco (cambia il colore per via delle proprietà di compressione del JPEG)

Tantissimi anni fa ricordo di aver letto un interessante articolo sulla steganografia, cioè l’arte di nascondere l’informazione (si badi bene: non crittografie, ma nascondere) per comunicare con un interlocutore in modo riservato tramite un canale pubblico.

Forse per colpa del caldo mi è venuta alla mente una serie di pensieri, che riporto qua sul blog.

1) Ecco perché Facebook ricomprime le immagini

Ipotizziamo che io sia una cellula di Al-Qaeda e che sia iscritto ad una pagina Facebook jihadista che ogni tanto pubblica qualche foto. Supponiamo che io conosca uno schema che ad esempio prevede che ogni n byte dell’immagine ci sia una lettera di un messaggio codificato. Supponiamo poi che io abbia a disposizione un manuale di codici di guerra, che consentono di scrivere parole poco “rilevabili” con un dizionario.

Codici operativi:
0001 Attacco
0002 Rapimento

Target:
0001 Aeroporto tal dei tali

Come fare per comunicare a tutte le cellule come me questa cosa per organizzare ad esempio un attacco sincronizzato? Basterebbe mandare sulla pagina Facebook l’informazione, camuffata come foto! Immaginate una bella foto in formato JPEG, e supponete che io alteri il colore di un pixel (cioè di un punto dell’immagine) ogni 2000 punti… chi se ne accorgerebbe? L’importante è usare uno schema conosciuto: ad esempio un carattere ogni 2000 byte o cose del genere. Bene, Facebook ricomprime le immagini che inviate, e quindi non c’è nessuna probabilità che una cosa così semplice funzioni, a meno che non si inseriscano delle ridondanze che però rischierebbero di rovinare pesantemente l’immagine. La ricompressione, infatti, di fatto modifica di nuovo l’immagine, anche se ce ne rendiamo poco conto.
Ad ogni modo questa tecnologia è veramente alla portata di tutti… In 10 minuti si possono scrivere, anche se in forma “grezza”, sia il codificatore che il decodficatore, in un linguaggio come il C, che trovate in coda a questo post. Con un po’ di tempo si potrebbe costruire un sistema molto più raffinato e difficilmente individuabile.

2) Non ci resta che sperare nei servizi segreti
Ora se Facebook ricomprime, lo stesso non è detto per altri social network, e soprattutto non è così per i siti web. Questo è un esempio del perché Internet possa essere decisamente fuori controllo per i governi e i servizi di intelligence, cosa che sinceramente non mi fa moto piacere. Tuttavia sono sicuro che le normali investigazioni portino comunque ad individuare soggetti pericolosi, che pubblichino o meno le foto sul web.

3) Steganografia o crittografia?

Suona un po’ come “omeopatia o medicina ufficiale?” In realtà credo che questi due strumenti siano entrambi eccezionali per proteggere la riservatezza. La crittografia è sicuramente più comoda, perché ci sono strumenti che consentono di non rendersi nemmeno conto del fatto che si sta usando tale tecnologia; essa è tuttavia molto più appariscente della steganografia, perché quest’ultima nasconde anche l’intenzione di voler comunicare, e dato che non si può controllare tutto, vale il principio in base al quale il miglior modo di nascondere una cosa è metterla sotto agli occhi di tutti. Non dimentichiamoci comunque che è possibile nascondere un messaggio cifrato, cioè combinare le due modalità di comunicazione, per un mix decisamente impenetrabile.

Codificatore

Si noti: questo codificatore è decisamente elementare e non consente di passare del tutto inosservati, in quanto ad esempio il JPEG è un formato poco resistente alle modifiche (nell’esempio postato in alto cambia il colore di quasi tutta la foto).

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char** argv)
{
const char* message =”0001 0001@22:00:UTC”;
if(argc != 2)
{
printf(“Errore, devi specificare un file jpegn”);
}
FILE *fp = fopen(argv[1],”rb”);
FILE *fp_o = fopen(“modificato.jpg”,”wb”);
int cntr = 0;
int len = strlen(message);
int done = 0;
char *buff;
buff=(char*)malloc(sizeof(char));
fseek(fp, 0L, SEEK_END);
int sz = ftell(fp);
fseek(fp, 0L, SEEK_SET);
for(int i=0;i<sz;i++)
{
fseek(fp, i,SEEK_SET);
fread(buff,1,sizeof(char),fp);
                //Salto i primi 16K per evitare problemi con 
                //i programmi che visualizzano immagini
if(i>16384 && i % 2000 == 0 && done < len)
{
*buff = message[done];
done++;
}
fwrite(buff,1,1,fp_o);
}
free(buff);
fclose(fp_o);
fclose(fp);
}

Decodificatore


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char** argv)
{
if(argc != 2)
{
printf(“Errore, devi specificare un file jpegn”);
}
FILE *fp = fopen(argv[1],”rb”);
int len = 128; //Limito la ricezione massima
int done = 0;
char *buff;
buff=(char*)malloc(sizeof(char));
fseek(fp, 0L, SEEK_END);
int sz = ftell(fp);
fseek(fp, 0L, SEEK_SET);
for(int i=0;i<sz;i++)
{
fseek(fp, i,SEEK_SET);
fread(buff,1,sizeof(char),fp);
if(i>16384 && i % 2000 == 0 && done < len)
{
printf(“%c”, *buff);
done++;
}
}
free(buff);
fclose(fp);
}

Categorie
Blog

Vie di uscita dalla crisi / Una generazione di confine

Noi nati all’inizio degli anni ’80 siamo cresciuti cogliendo gli ultimi guizzi dell’Italia spendacciona e ricca che da lì a poco sarebbe tramontata assieme alla Prima Repubblica. A noi era stato insegnato che esisteva il mondo ricco e il mondo povero, con l’eccezione di qualche paese che veniva definito “in via di sviluppo”. Mai avremmo immaginato che in realtà la nostra sarebbe stata una generazione di confine,  quella che ha davvero visto scivolare via gli ultimi granelli di ottimismo e di progressi fatti nel grande boom degli anni 60. Nei decenni successivi abbiamo visto erodersi un vantaggio che sembrava interminabile, e che invece è stato colmato anche dalla crescita che il capitalismo è stato capace di portare quasi ovunque.

La più grande vittoria della nostra generazione, se ci sarà, potrà essere quella dell’enorme cambiamento verso una imprenditoria più sana, più dinamica (cioè capace di rispondere rapidamente ai cambiamenti, cogliendo uno dei pochi vantaggi della piccola dimensione aziendale) e basata sulla ri-scoperta del valore. Soprattutto noi, figli della grande pubblicità degli anni ’80, abbiamo il dovere di imparare a vendere le migliaia di belle cose, in campo artistico, culinario e artigianale, che l’Italia ha messo nelle nostre mani.
Soprattutto dobbiamo imparare a venderci bene, cosa in cui siamo assolutamente scarsi, come mi sono sentito dire più volte quando ho parlato con persone di altri paesi (soprattutto inglesi e francesi). Dobbiamo smettere di sciupare le nostre cose e piantare le trivelle nel petrolio che la storia ha messo non sotto, ma sopra la nostra terra, valorizzando il bello, il lussuoso, il funzionale, il buono, il capace. Non credo che basti, perché sono anche convinto che ci voglia tanta industria avanzata per poter vivere bene nel club dei paesi ricchi, ma è altrettanto vero che dal saper valorizzare possono nascere ricchezze enormi per il nostro Paese.
Categorie
Blog

Robocop 1987, Robocop 2014

Attenzione, nel post sono presenti riferimenti a scene del film!

Il vecchio e il nuovo Robocop, immagine © Totallylookslike.com


Robocop è stato uno dei miei film preferiti di sempre, cosa che chiunque mi conosce sa.
Che cosa mi è piaciuto di quel film? Il senso di invulnerabilità? La violenza inaudita? Lo humor degli spot televisivi e del telegiornale? A 8-9 anni può darsi, ma oggi direi qualche cosa di più: la perfetta sintesi che lo sceneggiatore ha fatto degli anni ’80: il ruolo delle grandi “corporation” nella società americana, le esagerazioni televisive, le privatizzazioni (vedi Reagan), la centralità dell’automobile e la grande speranza nell’intelligenza artificiale.

Gli effetti speciali? Erano necessari, ma non hanno mai preso il posto degli attori, pur trattandosi di un film di fantascienza; quanti film di Hollywood oggi sono capaci ti tenere a bada gli FX? Pochi, pochissimi, e i rifacimenti che stanno facendo dei film di allora sono un vero e proprio disastro, proprio perché forse qualcuno ha pensato che il limite di quei film fossero appunto gli effetti speciali, allora non ancora computerizzati.

Qui arriviamo al reboot di Robocop, firmato da Josè Padilha, e uscito nei cinema pochi mesi fa. Un disastro, con pochissimi spunti notevoli. L’attore protagonista non ha alcuna personalità, né da vivo né da “morto”, e tutto il film sembra scivolare via senza lasciare nulla. Un film piatto, incolore e insapore, che a parte qualche lacrimuccia del poliziotto che si vede ridotto a pochi brandelli di carne (l’unica scena davvero forte del film), non comunica il dramma dell’uomo morto e riattivato che progressivamente recupera i suoi ricordi. Del resto a parte un paio di battute, “l’uomo” nel film è durato molto poco e non ha certo dimostrato una personalità affascinante e complessa, quindi averlo trasformato in macchina non è stato un gran dramma.

Per carità, un tentativo di mantenere un ancoraggio con la realtà attuale c’è: l’idea è che questi robot vengono usati negli scenari di guerra classici (Afghanistan, Iraq) per ridurre a zero le morti di soldati umani. Questo in realtà ha senso perché è risaputo che una delle principali asimmetrie in questi conflitti è la (in)capacità dei paesi occidentali di “sopportare” l’aumento progressivo di vittime rispetto ai paesi non democratici. Il tentativo comunque è debole, ma sarebbe stato certamente peggio riproporre uno scenario anni ’80 nel 2014.

A parte questo, si salvano solo le seguenti cose:

  • La performance di Gary Oldman, che però si può permettere di scegliere film migliori
  • La performance di Keaton, che svolge perfettamente il ruolo della persona di potere che fa scelte irresponsabili con leggerezza e che adora manipolare il prossimo
  • La scena di Murphy disassemblato con i polmoni in bella vista
  • Il telegiornale (tipo TG4) di Samuel Lee Jackson, soprattutto quando toglie la parola al senatore Dreyfus; questa cosa però va vista con molta ironia
Inutile dire che la SUX-6000 (pronuncia SUCKS 6000) è stata rimpiazzata da una moto anonima, e che gli ED-209 non ruggiscono più come i puma.
Categorie
Blog

Il social network delle meraviglie

È difficile dare la definizione di migliore quando si ha a che fare con parametri estremamente soggettivi, quindi forse dovrei dire “Uno dei più interessanti”.

È Pinterest, che ho riscoperto proprio in queste settimane. Perfetto per chi è interessato a stile, design, moda, cibo e in generale tutto quello che può essere espresso con una foto.

Non serve per farsi i fatti degli altri, quindi forse non è così “social” (traduzione in inglese di “pettegul”) ma assicuro che aprire il wall di Pinterest può essere un momento di grande godimento se si scelgono i canali più interessanti.

Ci si iscrive, anche usando Facebook o Google+, si seguono altre persone e si possono “ripinnare” (condividere) le immagini, eventualmente catalogandole in opportune board (ecco quella in cui catalogo foto di astronomia o eventi naturali). Essendo meno popolato di Facebook ha anche il pregio di avere un pubblico più selezionato, se non altro per interesse.
E non ci sono i giochini idioti.

Seguitemi se vi va!

Categorie
Blog

Il Pi Greco, l’olografia e i buchi neri

Una delle mie caratteristiche è il farmi affascinare come un bambino di fronte alle scoperte scientifiche che riguardano l’universo e tutto ciò che è in noi e attorno a noi.

L’altro giorno ho visto in TV una puntata di una serie che non conoscevo, in cui si parlava del Pi Greco, o π, che tutti conosciamo come quel numero pari circa a 3.14.
Quello che giustamente diceva il personaggio della serie è che questo numero rappresenta il rapporto tra la lunghezza di qualsiasi circonferenza e il suo diametro. Fin qui niente di straordinario, se non ad esempio che una entità geometrica così comune in natura dipenda da quello che in fondo è un numero irrazionale, cioè non ottenibile con nessuna frazione di numeri interi, composto da infinite cifre decimali che non si ripetono mai. Qui però inizia il primo fatto affascinante: i matematici suppongono che la sequenza infinita di cifre decimali sia equivalente ad una generazione casuale di numeri, infinita appunto, che in quanto tale conterrebbe tutta l’informazione possibile. Questo è tanto più incredibile se si pensa che il numero nasce da un rapporto tra due entità geometriche semplicissime.
Facciamo un esempio: se ipotizzassimo di tradurre una tesi di laurea di 100 pagine in numeri (ad esempio usando la rappresentazione ASCII di tutte le lettere che la compongono) si potrebbe avere un inizio del genere:
Università degli Studi di Ferrara, Tesi sui sistemi operativi per computer.
Si avrebbe una conversione di questo tipo:
U=85
n=110
i=105
v=118
e=101

e così via (provate a fare la conversione in ASCII di un testo su questo sito). Quindi avremmo che l’inizio di questa tesi potrebbe essere trasformata in questa sequenza numerica:
85110105118101…

Ora il bello è che in qualche punto del π, si potrebbe trovare quella sequenza, seguita dal resto della tesi di 100 pagine. Non solo, ma da qualche altra parte, magari dopo 10^1000 cifre decimali (1 seguito da 1000 zeri) si troverà anche la traduzione in tedesco.

È facile trovare su Internet parecchi sviluppi del π, ma su questo sito trovate addirittura in che punto si trova una sequenza (non troppo lunga, però!).
Pensate però non solo ad una tesi di laurea, ma anche al DNA di ciascuno di noi o ai pixel che formano una foto che amiamo, o all’informazione di tutti gli stati quantici delle particelle che formano il Colosseo. Non basta? Allora pensate a tutti i libri che non verranno mai scritti, così come alla musica e alla filosofia. Tutto potrebbe essere nelle pieghe di quel numero.
Andiamo però oltre a quello che si lasciava intendere nella serie TV e spingiamoci oltre: parlando di informazione sparsa lungo le cifre decimali di un numero, mi è venuta in mente l’olografia, cioè la possibilità di proiettare una realtà tridimensionale a partire da due dimensioni. Tutti abbiamo avuto una dimostrazione pratica di un ologramma, stringendo tra le mani una carta di credito, e in futuro non si esclude un’evoluzione tecnologica capace di estendere gli ologrammi ad altre applicazioni quotidiane.
A questo punto è lecito chiedersi se tutta la realtà altro non è che un ologramma presente nel π, capace di comprimere in una sola dimensione (l’estensione delle cifre decimali) tutti gli universi possibili, incluso il nostro.
Tra l’altro, il fatto che la realtà tridimensionale sia un ologramma, è una delle tesi attualmente più accreditate dalla fisica in seguito ad alcuni problemi nati con lo studio dei buchi neri. Il fisico Leonard Susskind ha avuto infatti la meglio sullo stesso Hawking (con cui ha “lottato” per anni, finché Hawking ha dato ragione a Susskind) per aver ipotizzato che i buchi neri abbiano proiettato sul loro esterno l’intero insieme dell’informazione di ciò che è cascato dentro….
Mi viene da dire che se il buco nero è di forma sferica (e quindi tonda) il π allora potrebbe dare un interessante contributo a questa proprietà olografica!