Le energie spese nella realizzazione del software sono state davvero notevoli, al punto che le nostre famiglie hanno cominciato a sospettare di una vita "parallela" mascherata dalla frase pronunciata ogni mattina "Bhe, mà, io vado all'università". E invece, accampati in aule pari\dispari\mostra progetti del politecnico, abbiamo tentato di stabilire il record di permanenza continua in facoltà, superando nettamente le 12 ore, come si può osservare dalla seguente prova fotografica:
Soddisfatti del risultato finale, abbiamo deciso di rendere disponibile il software online sotto licenza Freeware, per chiunque avesse il bisogno di utilizzarlo o volesse capire di cosa si tratta per semplice curiosità. Sono pertanto ben accetti commenti di ogni tipo, positivi o negativi.
Tenete presente che, a causa del ritmo frenetico delle sessioni esistive, il tempo è stato nostro nemico e la fase di testing ha occupato una piccola parte del Gantt :D
Di seguito un breve Abstract che illustra il progetto ed il file di installazione dell'applicazione.
Abstract - QR Stega: steganografia di QR Code a chiave privata
QR Stega è un'applicazione che consente di codificare e decodificare all’interno di un’immagine contenitore (in formato BMP o PNG) un QR Code che, a sua volta, contiene un messaggio. Un QR Code non è
altro che la versione bidimensionale del normale codice a barre (fotografia a sinistra). Per nascondere il QR Code all’interno dell’immagine viene utilizzata la steganografia sostitutiva, che consiste nel sostituire i bit meno significativi con i bit che rappresentano il messaggio da steganografare, nel nostro caso il QR Code. In aggiunta, per incrementare la robustezza del processo steganografico, la sostituzione dei vari bit all’interno dell’immagine contenitore non avviene in maniera sequenziale dall’inizio alla fine, bensì sfruttando una distribuzione pseudo casuale che fa uso di un Digest, generato a partire da una chiave segreta conosciuta solo dall’utente. L'immagine ottenuta dall'iniezione steganografica, si presenta in tutto e per tutto simile all’originale, con differenze impercettibili dall'occhio umano. In fase di decodifica quindi, solo conoscendo la password è possibile rilevare i bit che compongono il QR code nell'immagine, e quindi, decodificare il messaggio nascosto. Il processo steganografico di base è ormai noto ed applicato in larga scala, la particolarità del nostro progetto è l'utilizzo del QR code distribuito attraverso il calcolo di un Digest. Questa novità consente di irrobustire notevolmente il processo steganografico nell'ipotesi di un pesante attacco di steganalisi, mirato a decifrare il messaggio nascosto all'interno dell'immagine. Prima di tutto, pur sospettando la presenza del messaggio nascosto, questo non sarebbe intelligibile immediatamente (poichè in realtà si troverebbero i pixel di un QR Code), rendendo difficile la composizione del QR Code stesso. Inoltre, nel pieno rispetto del principio di Kerckhoffs (un crittosistema deve essere sicuro anche se il suo funzionamento è di pubblico dominio, con l'eccezione della chiave), pur conoscendo il meccanismo con cui avviene la codifica del messaggio in QR Code e l'intera procedura con cui si realizza l'iniezione dei pixel del QR Code nell'immagine, il Digest di 160 bit determina una distribuzione pseudocasuale delle iniezioni e rende computazionalmente impossibile il rilevamento del QR Code e del messaggio nascosto, elevando la probabilità di rilevare il QR Code nell'immagine alla probabilità di calcolo del Digest, e cioè una su 2^160.
In aggiunta alle normali operazioni di Codifica e Decodifica di messaggio, QR Stega consente di effettuare la codifica partendo direttamente da un QR Code contenuto in un file immagine, e addirittura consente di acquisire da webcam il QR code da codificare.
Per facilitare l'utilizzo del software passo passo, il software è corredato di una guida dettagliata scritta in HTML Help.
Il progetto è stato scritto sulla piattaforma .NET nel linguaggio C#, l'interfacciamento alla webcam sfrutta l'avicap32.dll di Windows consentendo un immediato riconoscimento di qualsiasi periferica compatibile con la libreria senza dover comunicare con i driver specifici. L'installer è stato realizzato in MSI ed è accompagnato dalla routine di disinstallazione.
Download QR Stega
Per scaricare il file di installazione, cliccare sul banner di seguito. Estrarre il file rar in una cartella ed eseguire il file Setup.exe.



2 commenti:
Complimenti.
L'immagine può essere letta direttamente dal lettore via fotocamera? io non ci sono riuscito.
Saluti
thomas
thomasmascioli AT gmail DOT com
Ciao! Grazie per i tuoi complimenti, è sempre bello vedere che qualcuno apprezza il nostro lavoro.
Per "leggere direttamente l'immagine da webcam" cosa intendi esattamente?
Se ti riferisci all'acquisizione del QRCODE da codificare all'interno dell'immagine contenitore, la risposta è si. Dalla scheda "QRCODE" ci sono due opzioni:
- QRcode da file (se si possiede un'immagine che contiene il QRcode)
- QRcode da webcam (se si possiede una stampa del QRcode).
Quindi se clicchi su "Acquisisci" si apre una schermata per l'avvio della Webcam. Clicca su "Avvia" posiziona con precisione il qrcode vicino alla webcam e poi clicca su "Registra". Quindi cliccando su "Decodifica" puoi decodificare il messaggio contenuto nel QRcode, che (premendo OK) viene portato direttamente nel programma per la codifica nell'immagine contenitore.
In realtà devo dire che l'acquisizione deve essere fatta con precisione. A causa della natura dell'algoritmo implementato, non sono ammesse grandi distorsioni o disturbi. Affinchè il QRcode venga riconosciuto correttamente è necessario posizionare l'immagine saldamante dinanzi alla webcam.
In questa direzione ci sono ampi margini di miglioramento. Chissà, un domani si avrà occasione di tornarci a lavorare.
A presto!
Posta un commento