2008-12-06 20 views
5

Deseo poner algo de texto en una página y ocultar algunos datos en ese texto. ¿Alguien sabe de algún método/patrón que se haya utilizado en el pasado para resolver este problema?¿Puedes ocultar los datos en el texto?

Ejemplo: Tengo el siguiente texto: "El gato se sentó en el perro y estaba feliz".

También tengo el número 123. Quiero ocultar este número en esa oración de modo que la oración se pueda colocar en una página web y solo alguien que esté enterado pueda encontrar los datos.

Respuesta

4

HTML hace que sea bastante fácil hacer esto, en realidad. No hay necesidad de cantidades realmente astutas de esteganografía, etc. Veamos:

Esta oración incrusta 123 y luego detiene la incrustación.

Esta oración incrusta 0102 y luego detiene la inserción.

(Tendremos que ver si realmente funciona en la reducción del precio, pero pienso que sí.) La verdad es que es bastante obvio si se sabe que hay algo a buscar, pero creo que estará de acuerdo que no es obvio a los observadores casuales.

Lo he dejado como un pequeño rompecabezas para resolver el esquema, pero agregue un comentario si desea que se explique explícitamente.

+0

¡Asegúrese de habilitar la compresión en su servidor HTTP si hace esto! –

+1

Sí, si está transmitiendo cantidades significativas de datos podría ser algo difícil de manejar. –

-1

Bueno, podrías probar algo como this ... aunque no estoy seguro si eso es exactamente lo que estás buscando.

0

Puede haber un algoritmo que puede convertir esa frase en 123, pero creo que, en general, tendrá que aceptar algunas modificaciones en el texto si necesita almacenar cualquier valor numérico posible.

1

Creo que lo que estamos buscando es algo que se llama esteganografía. Corinna John tiene una excelente colección de artículos sobre el tema en CodeProject.

http://www.codeproject.com/script/Articles/MemberArticles.aspx?amid=475133

+0

Para agregar ... si sigues los enlaces en CodeProject, llegarás a su página principal ... que parece enfocada en la esteganografía de Do-It Yourself ... http: //www.binary-universe.net/ – torial

9

Por supuesto, esto se puede hacer.

Lo que está describiendo está en una descripción amplia llamada Steganography.

Por ejemplo, es posible codificar un número de tal manera que se cuenta el número de palabras hasta que vea la letra B, en cuyo caso 123 podría codificarse como:

You belong to the beautiful group of people being elite. 

La cosa es, la persona que desea decodificar su mensaje debe conocer su algoritmo.

Editar Me doy cuenta de que mis números están desactivados por uno. Comience a contar en 0 y verá el número 123.

0

Si el 'texto' en realidad era una imagen, entonces podría ocultar los datos en eso usando steganography - los datos están ocultos en el archivo de imagen binaria sin afectar la forma la imagen se ve.

+1

Ocultar datos en imágenes es solo una rama de la esteganografía. –

0

Según esta thread:

Prof. Mikhail Atallah et. Alabama. aquí en Purdue hizo una gran cantidad de investigación en watermarking text.

La aproximación utiliza TMR (Text Meaning Representation) de frases para codificar bits realizando transformaciones menores colocando la TMR a cierta distancia de una forma canónica definida.

(otro método para texto de agua es presented here)

puede ser otra forma de ocultar el texto dentro del texto, junto con el método Steganograph se describe en las otras respuestas.

3

Existen enfoques muy complicados para este problema, sin embargo, probablemente pueda elegir uno muy simple. P.ej. defina un adjetivo para cada número:

0. beautiful 
1. harmless 
2. evil 
3. colorful 
4. weird 

y así sucesivamente. Ahora seleccione oraciones de su elección y coloque marcadores de posición en las oraciones donde pertenecen los adjetivos.

"The {adj} cat sat on the {adj} dog and the {adj} cat was happy." 

Su número es 123, por lo que su sentencia es

"The harmless cat sat on the evil dog and the colorful cat was happy." 

Un analizador puede tomar fácilmente la sentencia, dividirlo en palabras, encontrar adjetivos en la tabla anterior, y convertirlos de nuevo a los números .

The -> ? 
harmless -> 1 
cat -> ? 
sat -> ? 
on -> ? 
the -> ? 
evil -> 2 
: 

al final tienes 123 de nuevo.

Tan pronto la gente sepa que hay información oculta en la oración, el algoritmo se rompe fácilmente. Puede hacer que sea más difícil romper si agrega variación al definir múltiples adjetivos por número. En lugar de

1. harmless 

puede definir

1. harmless/stupid/blue/fashionable 

cuando se necesita para codificar 1, elige al azar cualquiera de las palabras de arriba. Como estos se asignan al número 1, al analizador inverso no le importará cuál de las palabras se imprime allí, el resultado siempre será uno. Esta aleatorización dificultará la ingeniería inversa del algoritmo.

0

El enfoque que mencionó Jon Skeet es muy similar al enfoque de Matthew Kwan "SNOW". Ambos ocultan pequeñas cantidades de información arbitraria en el texto sin agregar, eliminar o cambiar ninguna de las palabras en el texto fuente. Ambos codifican el mensaje secreto en espacios en blanco normalmente irrelevantes, normalmente invisibles: espacio extra y tabula caracteres entre palabras y al final de las líneas.

0

Aquí hay un prototipo de conversión de datos cifrados a mensajes de texto "naturales".

http://herosys.net/w/project/text-steganography-hide-text-in-spam-sms

Convertir texto original como "See U en la puerta este de la Universidad, mañana 08 a.m." al mensaje de texto corto parece spam.

"La mejor casa de todas! Nunca debe perderse. 1000-3000 pies cuadrados $ 15-80 por pie cuadrado. Llame 123-456-7890".

El algoritmo es que acaba de crear un diagrama de gramática y crear una tabla de candidatos para cada palabra. Al igual que BASE64, pero la tabla de índice se modifica según su contexto predefinido.

+0

El primer enlace es 404. –

-1

Tengo dos esquemas con buena seguridad pero con la compensación de tasas de incorporación de stegabit bastante bajas. Uno de ellos es extremadamente simple pero tiene una tasa de inserción de 1 bit por línea de texto arbitrario dado por el usuario solamente, mientras que el otro, que requiere que el usuario componga covertexts bajo la guía del software, logra una tasa de incrustación en el rango de [0.5 , 1.0] por palabra. Ver mi página de inicio mok-kong-shen.de

+0

Esto se parece más a una respuesta de solo enlace. Resuma aquí la información relevante para obtener una respuesta completa y proporcione el enlace al final para lecturas/referencias/contexto adicionales. – Reti43

+0

@ Reti43: Gracias. Un esquema, llamado EMAILSTEGANO, modifica el número de palabras en un texto (correos electrónicos, etc.) de modo que el número de palabras en una línea mod 2, es decir, la paridad, da la sopa de letras. El otro, empleando una gran lista de palabras en inglés (hay tal descarga) y baraja a través de una clave secreta dependiente de la sesión para obtener dos aprox. sublistas iguales Las palabras en una sublista denotan 0 y en la otra 1. Palabras, p. Ej. "a", "en", etc. están excluidos de estas listas. Al usuario se le pide que cambie una palabra de su elección en caso de que esa palabra se encuentre en la sublista incorrecta según lo requiera el stegabit actual. –

Cuestiones relacionadas