La steganografia selettiva ha valore puramente
teorico e, per quanto se ne sappia, non viene realmente utilizzata nella pratica.
L'idea su cui si basa è quella di procedere per tentativi, ripetendo
una stessa misura fintanto che il risultato non soddisfa una certa condizione.
Facciamo un esempio per chiarire meglio. Si fissi una funzione hash semplice
da applicare a un'immagine in forma digitale (una funzione hash è una
qualsiasi funzione definita in modo da dare risultati ben distribuiti nell'insieme
dei valori possibili; tipicamente questo si ottiene decomponendo e mescolando
in qualche modo le componenti dell'argomento); per semplificare al massimo,
diciamo che la funzione vale 1 se il numero di bit uguali a 1 del file che rappresenta
l'immagine è pari, altrimenti vale 0 (si tratta di un esempio poco realistico
ma, come dicevamo, questa discussione ha valore esclusivamente teorico). Così,
se vogliamo codificare il bit 0 procediamo a generare un'immagine con uno scanner;
se il numero di bit dell'immagine uguali a 1 è dispari ripetiamo di nuovo
la generazione, e continuiamo così finché non si verifica la condizione
opposta.
Il punto cruciale è che l'immagine ottenuta
con questo metodo contiene effettivamente l'informazione segreta, ma si tratta
di un'immagine "naturale", cioè generata dallo scanner senza
essere rimanipolata successivamente. L'immagine è semplicemente sopravvissuta
a un processo di selezione (da cui il nome della tecnica), quindi non si può
dire in alcun modo che le caratteristiche statistiche del rumore presentano
una distorsione rispetto a un modello di riferimento. Come è evidente,
il problema di questa tecnica è che è troppo dispendiosa rispetto
alla scarsa quantità di informazione che è possibile nascondere.
Ad ogni modo, alla fine del capitolo si proporrà un esempio di programma
che implementa una steganografia di tipo generativo, utilizzando con successo
l'idea di base della steganografia selettiva di nascondere le informazioni procedendo
per tentativi.