Domanda

Aggiornamento Ho posto questa domanda parecchio tempo fa ed ero curioso di sapere se è stato sviluppato qualcosa di simile da quando ho posto la domanda?

Non so nemmeno se esista un termine per questo tipo di algoritmo, e immagino che non ci sarà se nessuno lo ha ancora inventato.Tuttavia rende anche un po' difficile cercare su Google.Qualcuno sa se esiste già un termine per questo algoritmo/principio?


Questa è un'idea a cui ho pensato, ma non so bene come risolverla.Vorrei sapere se esistono soluzioni come questa o se voi ragazzi avete qualche idea su come potrebbe essere implementata.

Steganografia

La steganografia è fondamentalmente l'arte di nascondere i messaggi.Al giorno d'oggi lo facciamo digitalmente, ad es.modificando i bit meno significativi in ​​un'immagine come quello qui sotto.Pertanto per ogni pixel e per ogni componente di colore di quel pixel potremmo essere in grado di nascondere uno o due byte.

Questa alternanza non è visibile ad occhio nudo, ma l'analisi dei frammenti meno significativi potrebbe rivelare schemi che mettono in luce l'esistenza e possibilmente il contenuto di un messaggio nascosto.Per contrastare questo problema, crittifichiamo semplicemente il messaggio prima di incorporarlo nell'immagine, il che mantiene il messaggio sicuro e aiuta anche a prevenire la scoperta dell'esistenza di un messaggio nascosto.

Pertanto, in linea di principio, la steganografia fornisce quanto segue:

  • Nascondere il messaggio crittografato in qualsiasi tipo di dati multimediali.(Immagini, musica, video, ecc.)
  • Negabilità completa dell'esistenza di un messaggio nascosto senza la chiave corretta.
  • Estrazione del messaggio nascosto con la chiave corretta.


(fonte: cs.vu.nl)

Semacodici

I semacode sono un modo per codificare i dati in una rappresentazione visiva, che può essere stampata, copiata e scansionata facilmente.Il Data Matrix mostrato di seguito è un esempio di semacode contenente il famoso testo Lorem Ipsum.Si tratta essenzialmente di un codice a barre 2D con una capacità maggiore rispetto ai codici a barre usuali.I programmi per generare semacode sono facilmente disponibili, così come i software per leggerli, soprattutto per i telefoni cellulari.I Semacode solitamente contengono codici di correzione degli errori, sono generalmente molto robusti e possono essere letti in condizioni molto danneggiate.

Pertanto i semacodes hanno le seguenti proprietà:

  • Codifica dei dati che possono essere stampati e copiati.
  • Può essere scansionato e interpretato anche in condizioni danneggiate (sporche) e generalmente una codifica molto robusta.

Combinandolo

Quindi la mia idea è quella di creare qualcosa che combini questi due, con tutte le proprietà combinate.Ciò significa che dovrebbe:

  • Incorpora un messaggio crittografato in qualsiasi supporto, probabilmente un'immagine scansionata.
  • Il messaggio dovrebbe essere estraibile anche se l'immagine viene stampata e scansionata, e anche parzialmente danneggiata.
  • L'esistenza di un messaggio incorporato non dovrebbe essere rilevabile senza la chiave utilizzata per la crittografia.

Quindi, prima di tutto vorrei sapere se sono disponibili soluzioni, algoritmi o ricerche a riguardo?In secondo luogo, vorrei sentire qualche idea/pensiero su come ciò potrebbe essere realizzato?

Spero davvero che si possa avviare una buona discussione sulle possibilità e sulla fattibilità di implementare qualcosa di simile, e non vedo l'ora di leggere le vostre risposte.

Aggiornamento

Grazie per tutto il buon input su questo.Probabilmente lavorerò ancora un po' su questa idea quando avrò più tempo.Sono convinto che debba essere possibile.Pensa alla ricerca sull’incorporamento di filigrane nella musica e nei film.

È stato utile?

Soluzione

Immagino che parte della robustezza di un semacode al danno/sporco/oscuramento sia l'elevato contrasto tra i due stati di qualsiasi "cella".Il lettore può comunque farsi un'idea dello stato attuale, anche con qualche distorsione.

Questo tipo di contrasto non è disponibile in un'immagine fotografica, ed è proprio il motivo per cui la steganografia funziona: il bit-flipping lsb non ha quasi alcun effetto visivo sull'immagine stessa, mentre la fedeltà digitale garantisce che un sistema non visivo possa ancora in modo molto accurato leggere i dati incorporati.

Poiché le due applicazioni sono in un certo senso agli estremi opposti dello spettro analogico/digitale (i semacode sono tutti decifrabili mediante l'elaborazione analogica (visiva) ma sono su carta, non digitali;la steganografia è tutta incentrata sui frammenti del file e non si preoccupa della rappresentazione analogica, sia essa luce, suono o qualcos'altro), immagino che una combinazione dei due sarà estremamente difficile, se non impossibile.

Essenzialmente quello a cui stai pensando è essere in grado di incorporare steganograficamente qualcosa in un'immagine, stampare l'immagine, farne una fotocopia a colori, scansionarla, ed essere comunque in grado di estrarre i dati incorporati.

Temo di non poter aiutare, ma se qualcuno ci riuscisse, ne rimarrei dannatamente impressionato!:)

Altri suggerimenti

Non è una risposta completa, ma dovresti guardare filigrana.Questa tecnica risolve i tuoi primi due obiettivi (incorporabile in un'immagine stampata e leggibile anche da una scansione parzialmente danneggiata).

Parte dell'affidabilità del watermarking rispetto alla distorsione e agli errori di trascrizione (dal passaggio dal digitale all'analogico e viceversa) deriva dalla ridondanza (ad es.ripetendo i dati più volte).Ciò renderebbe la filigrana rilevabile anche senza chiave.Tuttavia, potresti essere in grado di utilizzare tecniche di ridondanza più sottili, magari legate alla codifica di cancellazione o alla condivisione segreta.

So che non è una risposta completa, ma spero che questi indizi ti indichino la giusta direzione!

Che lingua/ambiente stai utilizzando?Non dovrebbe essere così difficile scrivere codice che apra sia l'immagine che il semacode come bitmap (quest'ultimo come monocromatico), imposta il bit più basso di ciascun byte di ciascun pixel nell'immagine a colori sul valore di pixel corrispondente della bitmap monocromatica.

(opzionalmente espandi prima la bitmap semacode alle stesse dimensioni in pixel estendendola con il bianco)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top