Newsgroup: it.comp.sicurezza.crittografia
Titolo: Esiste un programma in grado di...

...crittografare un testo all'interno di un altro di senso compiuto?
Innanzitutto salve a tutti, mi spiego meglio: esiste un programma che,
partendo da due testi, crei un algoritmo, una chiave, in modo che si
possa, a partire da uno dei due testi, ottenere l'altro?
Esempio pratico: supponiamo che io voglia scambiare delle informazioni
su internet nascondendole all'interno di messaggi postati su di un
forum: naturalmente questi messaggi devono avere un senso compiuto, ma
allo stesso modo la mia controparte, in possesso della "chiave" deve
poter convertire il messaggio del forum nel reale testo crittografato.

 ....crittografare un testo all'interno di un altro di senso compiuto?

Mi sembra il classico cifrario di Vigenere, a cui ti rimando:
http://it.wikipedia.org/wiki/Cifrario_di_Vigen%C3%A8re
La sua sicurezza è, ovviamente, pari a zero, allo stato attuale della
tecnica.
-- 
Ciao.
Leo.
Web: 
www.leonardomiliani.com
E-mail: 
leon...@leonardomiliani.com
Scegli software opensource - Choose opensource software

 
http://it.wikipedia.org/wiki/Cifrario_di_Vigen%C3%A8re
Piuttosto, mi sembra un problema di staganografia:
 
http://it.wikipedia.org/wiki/Steganografia

  
http://it.wikipedia.org/wiki/Steganografia
Grazie delle risposte. In effetti a quanto pare si tratta proprio di
steganografia, solo che a me servirebbe qualcosa di più "sottile" del
nascondere messaggi nei file. In pratica io vorrei nascondere messaggi
in un testo di senso compiuto, non in un file di testo (non so se si
capisce la differenza). La cosa che più si avvicina al mio concetto è
questo sito qua:
http://www.spammimic.com/index.shtml
solo che ovviamente non posso ancontentarmi di utilizzare falsi
messaggi di spam (vorrei che sia io a decidere in quale testo
nascondere i messaggi). Qualche idea/link?

chameleon ha scritto:

Uhm... potresti anche provvedere con un di quei cifrari classici in cui
le lettere che compongono il messaggio sono dislocate in determinate
posizioni all'interno del messaggio fasullo.
Non mi viene il nome, ma esisteva un tipo di cifra in cui si prendeva un
foglio di carta bianca con delle finestrelle e si poggiava sul testo
fasullo o su di una pagina di un libro. Leggendo le lettere che si
intravedevano dalle finestrelle, si ricostruiva il messaggio.
Dovresti però poter stabilire un sistema per generare la "mappa" delle
cosiddette finestrelle (o, informaticamente parlando, della posizione
delle lettere da considerare) che anche il ricevente possa usare e poi
scambiare il messaggio come un semplice testo anonimo.


 scambiare il messaggio come un semplice testo anonimo.
Esattamente, è proprio questo il concetto! Ovviamente la "chiave"
cambia da messaggio a messaggio però a parte questo dovrebbe essere
possibile la cosa. Purtroppo non sono in grado di scrivere da me un
programma del genere (ci ho anche pensato...) mi chiedevo se esisteva
già bell' e pronto. Se qualcuno conosce qualche nome io sono qua.

Generalmente i programmi di steganografia lavorano su immagini o
suoni, rappresentazioni digitali di grandezze analogiche in cui il bit
meno significativo è ricco di rumore (nel senso di approssimarsi ad un
flusso casuale di dati) a causa anche dell'imperfezione degli
strumenti di digitalizzazione.
Questo comporta che il bit meno significativo di un record (pixel o
altro) può essere cambiato senza dare luogo ad alterazioni
percettibili da un essere umano (o facilmente riconoscibili da un
software) sostituendolo o correggendolo con un altro flusso di dati
pseudocasuali come un testo cifrato.
Purtroppo fare questo per nascondere dati in un testo è molto
difficile perchè si tratta di un flusso di dati digitale in cui
praticamente ogni bit modificato può codificare un oggetto (in questo
caso una lettera) completamente diversa dall'originale; una possibile
soluzione sarebbe, come prospettato nei precedenti post, usare lettere
del testo originale in date posizioni determinate dalla chiave, il
problema è che questo gonfierebbe molto le dimesioni del testo
necessario a nascondere il flusso di dati: ipotizzando di usare un
byte per codificare l'offset della lettera da pescare l'output
potrebbe essere grande fino a 256 vole l'input, con l'ulteriore
problema che non è detto che nei 256 caratteri codificabili come
offset in un solo bit ci sia, nel testo originale, la lettera
richiesta (per questo, temo, esistono programmi che nascondono dati in
messaggi preordinati ma che io sappia nessuno che lo faccia in un
testo arbitrariamente scelto dall'utente).
Si potrebbe passare ad un offset di 16 bit, statisticamente sarebbe
praticamente irrilevante la possibilità di non trovare la lettera
desiderata (ma teoricamente non impossibile), le dimensioni
dell'output però esploderebbero fino a 64K volte quelle dell'input!
Pensandoci bene qualche soluzione si potrebbe sicuramente trovare, ma
non so quanto sarebbero competitive con la steganografia tradizionale
su immagini e simili flussi dati proprio perchè un file di testo come
input puramente digitale non ha bit meno significativi di altri e
"rumorosi" in sui sia facile nascondere qualcosa.

giorgio.ta...@gmail.com
 ha scritto:

Un metodo molto "casereccio" potrebbe essere quello di usare la firma
come "mappa" dei caratteri da ricercare nel testo.
Avete notato che spesso molti navigatori usano firme random che cambiano
post dopo post?
Si potrebbe perciò decidere la posizione delle lettere a priori, e poi
generare la firma inserendo una sequenza di coppi di byte non
visualizzabili nel codice ASCII (i codici sotto a 32 non sono
visualizzabili: se uso quelli da 0 a 15, ho 16 caratteri esadecimali
che, combinati in coppia, mi danno indici da 256 posizioni) quale indice
della posizione della lettera relativamente alla riga.
Esempio.
Supponiamo che il seguente messaggio mi serva per spedire al mio
interlocutore il nome di qualcosa:
----
Ciao Mario,
ieri mi sono deciso ad andare a rinnovare la licenza di pesca.
Finalmente! Erano diversi mesi che dicevo di farlo.
Non avevo mai avuto il tempo di farlo.
Domenica che ne dici di andare a trote?
Voglio provare la nuova attrezzatura.
Ho un mulinello fantastico!
Ciao.
Saluti da un Beppe super-felice!!!
010401130808090C
Come detto, la sequenza 010401130808090C è codificata con i codici ASCII
non visualizzabili e rappresentano in coppia l'indirizzo esadecimale
della riga.
Ecco la rappresentazione della sequenza 010401130808090C (abbiamo le
posizioni-lettere):
01 -> C
04 -> i
01 -> F
35 -> r
08 -> a
09 -> r
12 -> e
Non si potrebbe fare una cosa del genere?
----


 Non si potrebbe fare una cosa del genere?
Si potrebbe fare una cosa ancor più elaborata (grazie dell'idea), vale
a dire: siccome di solito nelle e-mail, nelle news eccetera la riga
non supera i 72 caratteri, si potrebbero definire due chiavi.
La prima, lunga 72 caratteri tutti diversi fra loro e scelti ogni
volta in maniera random, identifica la numerazione: in pratica il
primo carattere di questa stringa rappresenta l'1, il secondo il 2
ecc. fino al 72-esimo. Questa sarebbe una chiave privata a
disposizione di entrambi i fruitori del messaggio.
La seconda chiave è costituita dai caratteri corrispondenti alle
posizioni delle lettere nel messaggio che vanno prelevate, come nel
tuo esempio.
Certo se avessi più tempo realizzerei il programma in C++ (non
dovrebbe essere assai complicato).

 La prima, lunga 72 caratteri ...
puoi anche utilizzare header del messaggio, come X-Face e Face in 
questo mio, sia come chiave, sia per steganografia. Il limite ufficiale 
secondo rfc è di 998 caratteri utili (dovendo terminare la riga con 
\n\r), ma ci sono modi per aggirarlo e andare oltre. Gran parte degli 
utilizzatori di OE nemmeno si accorgono dell'esistenza del valore. ;-)
Oppure, se il server lo consente, praticamente sempre nel caso di 
email, puoi mandare un messaggio formattato html e utilizzi lo sfondo o 
una cornice grafica come contenitore apparentemente innocente.
-- 
Sans

 ...crittografare un testo all'interno di un altro di senso compiuto?
No: ma pare esistano metodi per trasformare automaticamente un testo di
senso compiuto in un altro di senso altrettanto compiuto ma totalmente
diverso.
Il testo "Crittografia Invisibile" tratta di questo argomento parlando di
"grammatiche sensibili al contesto", se non sbaglio.